【问题标题】:Javascript cross-domain web request fails with Status=0?Javascript 跨域 Web 请求失败,Status=0?
【发布时间】:2011-07-03 13:16:39
【问题描述】:

编辑:下面已经指出这不起作用,因为 craigslist 没有设置 Allow-Cross-Domain 标头。好的,我会买那个。那么有没有其他方法可以在firefox中使用javascript来跨域下载页面呢?


是的,我知道以下代码在 IE 中不起作用。我知道 IE 希望我改用 XDomainRequest()。我不在乎那个。这只是 Firefox。

我正在尝试在 Firefox javascript 中执行跨域 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);

这不应该吗?

【问题讨论】:

    标签: javascript cross-domain craigslist


    【解决方案1】:

    Craigslist 不允许跨域请求。它需要发送正确的Access-Control-Allow-Origin 标头。

    【讨论】:

    • 那么有没有其他方法可以让javascript请求网页呢?
    • 不管怎样,必须有第三方合作才能做跨域的XMLHttpRequests。否则这将是一个巨大的安全漏洞,不是吗?通常的做法是使用 JSONP,但如果 CraigsList 没有特意为您提供可以从其他域访问的 API,那么它就不会发生。您必须在自己的服务器上运行代理才能发出请求。
    猜你喜欢
    • 1970-01-01
    • 2017-12-27
    • 2015-01-28
    • 2013-10-24
    • 1970-01-01
    • 2014-03-29
    • 2018-12-02
    • 1970-01-01
    • 2019-04-02
    相关资源
    最近更新 更多