2010-04-26 158 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