0

尝试访问不在我域中的服务器上的 JSON 数据时出现访问错误。我尝试通过激活跨域功能,jQuery.support.cors = true;但仍然遇到同样的问题。

然后我找到了这个示例页面这篇文章,充满希望,我试着去XDomainRequest代替XmlHttpRequest. 不过,我得到了同样的错误。

当我在浏览器窗口中输入地址时,我会得到数据并可以在我的屏幕上看到它。我可以改变/寻找什么来使它工作?(我已经尝试了我能想到的每一个例子,现在我画的是空白。)

我正在执行下面的代码。

var xdr = new XDomainRequest();
xdr.onload = function () { alert(xdr.responseText); }
xdr.open("GET", "http://blopp.json");
xdr.send();

我将无法要求我的用户激活任何东西。此外,我可能希望他们中的许多人在具有高限制的域上(我希望 90%+ 将在 IE 上,至少是第 8 版)。

编辑:

标题如下。

请求标头:

状态代码:200 OK
Request Headersview 已解析
GET /AppositelabRestService/api/EnvelopeTemplate/12345 HTTP/1.1
主机:apppositech.hosterspace.com
连接:keep-alive
缓存控制:max-age=0
用户代理:Mozilla/5.0(Windows NT 6.2; WOW64) AppleWebKit/537.4 (KHTML, like Gecko)
Chrome/22.0.1229.94 Safari/537.4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8
Accept-Encoding : gzip,deflate,sdch
接受语言: sv,en-US;q=0.8,en;q=0.6
接受字符集: ISO-8859-1,utf-8;q=0.7,*;q=0.3

响应头 HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/xml; charset=utf-8
过期:-1
服务器:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
日期:2012 年 11 月 7 日星期三 09:53:19 GMT
内容长度: 394

4

1 回答 1

1

服务器必须通过发送 CORS(跨域资源共享)标头来明确允许它,例如:

Access-Control-Allow-Origin: *

否则同源政策适用,你不能这样做。

顺便说一句,flash 使用 crossdomain.xml,所以如果有服务器托管这样的文件,您可以通过 flash 发出请求。

不幸的是http://apppositech.hosterspace.com/crossdomain.xml是 404。

于 2012-11-07T10:00:43.763 回答