2011-06-01 41 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

相關問題