Javascript跨域Web请求失败,Status = 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);
不应该这样吗?
答
Craigslist不允许跨域请求。它需要发送一个合适的Access-Control-Allow-Origin
标题。
那么有没有其他方式可以让我的javascript请求一个网页呢? – Tav 2010-04-26 02:02:30
无论如何,您必须拥有第三方合作才能完成跨域XMLHttpRequests。否则它会是一个巨大的安全漏洞,不是吗?通常的做法是使用JSONP,但如果CraigsList没有故意为您提供可以从其他域访问的API,则不会发生。您将不得不在自己的服务器上运行代理来发出请求。 – bobince 2010-04-26 10:14:05