2011-06-01 97 views
0

我试图访问我在其他网站上创建的Javascript API。 javascript是https://ksc105.kscserver.com/query.js,它将ajax呼叫拉到https://ksc105.kscserver.com/suggestions.php(?action = getall)。当然在https://ksc105.kscserver.com/index.php上使用这个作品。如何让ajax像Google Map API一样工作?

但是我试图使用JavaScript导入到另一个域名站点。我知道跨域Ajax调用不起作用,但我认为,如果Ajax调用是从该网站上的JavaScript制作的,它将起作用。我认为这是基于Google的Map API。我很确定它使用ajax。

如何让ajax像Google Map API一样工作?任何网站可以添加我的脚本并使用其功能?

在firebug中,我得到了请求,但我只是得到一个空的回报,但它不应该返回空。在IE9中,我收到错误“SCRIPT5:访问被拒绝”。 /“query.js,第62行字符5”。

如果您转到https://ksc105.kscerver.com/index.php并在方框中输入3个或更多字符,则应该像Google搜索一样获得“建议”。我需要在没有服务器代理的情况下在任何其他网站上工作。您可以使用“测试”,因为它会拉取大量测试数据。

+0

“此网页无法使用 在ksc105.kscerver.com服务器无法找到,因为DNS查找失败。DNS是Web服务将网站的名称翻译为其互联网地址。“ Quoth服务器,404。 – 2011-06-01 15:36:33

+0

http://ksc105.kscserver.com/ https://ksc105.kscserver.com/suggestions.php?action=getall – JustinKaz 2011-06-01 15:49:20

回答

2

尝试使用AJAX回调。 jQuery做得很好,但作为一个原始的例子,如果你用一个回调函数加载一些JSON(从<script>标签)它将运行该函数。这就是您可以跨网站使用Twitter API的方式。 I.E.如果你打电话http://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitter&count=20&callback=handletwitter并创建一个handletwitter功能:

<script type="text/javascript"> 
function handletwitter(data){ 
    console.log(data); 
} 
</script> 
<script type="text/javascript" src="http://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitter&count=20&callback=handletwitter"></script> 

这也被称为JSONP

+0

这使我的生活更轻松...在将来我可以只是重用每个呼叫的脚本元素。谢谢! – JustinKaz 2011-06-01 16:34:08

1

有一个聪明的解决办法这样做。你可以有一个宽度和高度为0的iFrame,所以它不可见。从它内部,您可以使用'parent'属性在主页面上加载数据。由于您可以在iFrame中加载任何内容,因此这应该是一个很好的解决方案。 考虑下面的例子(也将在不同的域上工作)。

<html> 
    <head> 
    <script type="text/javascript"> 
     function loadData(data) 
     { 
      var a = document.getElementById("H"); 
      a.innerHTML = data; 
     } 
    </script> 
    </head> 
    <body> 
    <div id="H">hello</div> 
    <iframe src="sample.html" width="0px" height="0px"> 
    </iframe> 
    </body> 
</html> 

Sample.html

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 
<script> 
    <!-- 
    parent.loadData("I am inside iFrame"); 
    --> 
</script> 
</body> 
</html> 
+0

是的,我可以看到你要去哪里...我想我可能会那样做! – JustinKaz 2011-06-01 15:55:12

相关问题