2012-06-29 103 views
0

我在這個問題上花了好幾個小時,我的同伴們也幫不了我。他說這可能是一個跨站腳本問題,可能是我的系統設置導致這個問題,因爲腳本在我的同伴的機器上運行良好。無法通過網址獲得回覆

下面是簡單的例子:

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
var req = new XMLHttpRequest(); 
var url = "http://www.javascriptkit.com/dhtmltutors/javascriptkit.json"; 
req.open("GET", url, false); 
try { 
    req.send(); 
} catch (e) { 
    alert("ERROR: " + e); 
} 
</script> 
</head> 
<body> 
</body> 
</html> 

執行代碼,錯誤顯示出來:

ERROR: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://firebug/content/console/commandLineExposed.js :: <TOP_LEVEL> :: line 156" data: no] 

我跑我的本地主機,Firebug控制檯及的jsfiddle這個代碼,所有的人都不工作。

我確定我的本地服務器運行良好,因爲測試腳本alert("works")正在工作。

任何人都可以幫助我。這是一個系統設置問題嗎?謝謝!

+0

指定'HTTP'的身體'null' - >'req.send(NULL);' – Engineer

+0

這是什麼呢?不同於'req.send()'?我不太明白.. – sozhen

回答

0

XMLHttpRequest到不同的域?除非他們在回覆中設置標題Access-Control-Allow-Origin,否則您將無法獲取。在Opera(至少11.64版本)中,無論如何,你都無法得到它。

我認爲你的同事的機器配置不安全。

+0

謝謝。我第一次使用XMLHttpRequest,不知道這個限制。我發現有人像我的同事一樣訪問我的服務器,現在我可以獲取我想要的數據。謝謝! – sozhen

0

我相信你不能做這樣的跨域調用。

0

XMLHttpRequest受制於瀏覽器的相同來源策略,因爲出於安全原因,只有在與原始網頁服務器相同的服務器上進行請求時,請求才會成功。