2010-04-26 123 views
0

編輯:下面指出,這是行不通的,因爲craigslist沒有設置允許跨域標頭。好的,我會買的。有沒有其他方法可以在Firefox中使用JavaScript下載跨頁的頁面呢?Javascript跨域Web請求失敗,Status = 0?


是的,我知道下面的代碼無法在IE瀏覽器。我知道IE期望我使用XDomainRequest()來代替。我不在乎這一點。這只是Firefox。

我想在Firefox中做一個跨域web請求。我一直得到0的狀態。有誰知道爲什麼?

var url = "http://newyork.craigslist.org"; 
var xdr = new XMLHttpRequest(); //Yes, I know IE expects XDomainRequest. Don't care 
xdr.onreadystatechange = function() { 
    if (xdr.readyState == 4) { 
     alert(xdr.status); //Always returns 0! And xdr.responseText is blank too 
    } 
} 
xdr.open("get", url, true); 
xdr.send(null); 

不應該這樣嗎?

回答

0

Craigslist不允許跨域請求。它需要發送一個合適的Access-Control-Allow-Origin標題。

+0

那麼有沒有其他方式可以讓我的javascript請求一個網頁呢? – Tav 2010-04-26 02:02:30

+0

無論如何,您必須擁有第三方合作才能完成跨域XMLHttpRequests。否則它會是一個巨大的安全漏洞,不是嗎?通常的做法是使用JSONP,但如果CraigsList沒有故意爲您提供可以從其他域訪問的API,則不會發生。您將不得不在自己的服務器上運行代理來發出請求。 – bobince 2010-04-26 10:14:05