2010-06-26 142 views
0

我認爲代碼是正確的,但我沒有在我的第二個提醒中得到任何迴應。當我進入第一次提醒中給出的網站時,我收到了我想要的文字。爲什麼它不起作用?沒有AJAX響應文本

<script type="text/javascript"> 

function getimages(q) { 
    bossimagesrequest = new XMLHttpRequest; 
    var requri = "http://boss.yahooapis.com/ysearch/images/v1/"+escape(q)+"?appid=yahoobosskey&filter=true&count=10"; 
    bossimagesrequest.open("GET", requri, true); 
    bossimagesrequest.onreadystatechange = function() { 
     if (bossimagesrequest.readyState === 4) { 
     alert(requri); 
     alert(bossimagesrequest.responseText); 
     } 
    }; 
    bossimagesrequest.send(); 
} 
</script> 

我沒有用我的API密鑰替換「yahoobosskey」,所以這不是問題。

回答

1

它看起來像碰到了same origin policy。您可能不得不使用相對路徑而不是絕對路徑。

相關:Empty responseText from XMLHttpRequest

您還可能有興趣在檢查出下面的堆棧溢出社區維基職位:

+0

所以我不能用AJAX使用雅虎BOSS?我認爲當雅虎從BOSS阻止其他服務器時會很愚蠢,因爲那時你必須做很多事才能繞開這個障礙。我不必爲雅虎BOSS使用AJAX嗎? – icant 2010-06-26 11:40:26

+0

@ user376919:同源策略阻止任何不源自Web文檔的相同域的內容。即使不同的端口號也是不允許的。我沒有雅虎BOSS的經驗,但您可能想檢查是否提供了[JSONP](http://en.wikipedia.org/wiki/JSON#JSONP)服務。否則,您可能想查看我鏈接到的SO帖子中描述的方法。 – 2010-06-26 11:47:27

+0

...例如,我注意到[雅虎的搜索API](http://developer.yahoo.com/common/json.html#callbackparam)爲JSONP提供服務。它被稱爲使用回調的JSON。 – 2010-06-26 11:49:30