尝试跨域连接到JSON文件时“访问被拒绝”

时间:2012-11-07 09:31:46

标签: javascript json cross-domain dynamics-crm xdr

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

然后我发现this example pagethis article充满了希望,我试图去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
请求Headersview解析了 GET / AppositelabRestService / api / EnvelopeTemplate / 12345 HTTP / 1.1
主持人:appositech.hosterspace.com
连接:保持活力
缓存控制:max-age = 0
User-Agent:Mozilla / 5.0(Windows NT 6.2; WOW64)AppleWebKit / 537.4(KHTML,与Gecko一样)
Chrome / 22.0.1229.94 Safari / 537.4
接受:text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:sv,en-US; q = 0.8,en; q = 0.6
Accept-Charset:ISO-8859-1,utf-8; q = 0.7,*; q = 0.3

响应标头 HTTP / 1.1 200 OK
缓存控制:无缓存
Pragma:no-cache
Content-Type:application / xml;字符集= 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

1 个答案:

答案 0 :(得分:1)

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

Access-Control-Allow-Origin: *

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

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

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