我正在尝试将脚本连接到Microsoft的World-Wide Telescope应用程序。后者监听端口5050上的命令。它和浏览器运行在同一台机器上(Chrome现在,但据我所知,它的行为与Firefox7和IE9是一样的)。
我在原始html文件中发送了一个"Access-Control-Allow-Origin:*“头文件,试图消除XSS的限制。
我访问WWT的代码如下:
$.ajax({
type: 'POST',
url: url,
data: data,
crossDomain: true,
success: success,
dataType: dataType
});
本例中的url是"http://127.0.0.1:5050/layerApi.aspx?cmd=new&...“(显然...这里是一些附加参数的简写)。
查看Chrome中的网络诊断,我可以看到以下内容:
Request URL:http://127.0.0.1:5050/layerApi.aspx?cmd=new&...
Request Headersview source
Accept:application/xml, text/xml, */*; q=0.01
Content-Type:application/x-www-form-urlencoded
Origin:http://gwheeler4
Referer:http://gwheeler4/conceptconnect.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1
请求正在发出-我看到WWT创建了一个新的层。但是,我没有收到回调。如果我添加了一个被调用的错误回调,但jqXHR对象上的error属性仅为" error“,而status为0。如果我在Chrome中查看网络请求,我会看到状态为“(已取消)”,但没有响应。
如果使用相同URL并将其粘贴到新的浏览器选项卡中,则可以看到响应是预期的XML。
当然,这里的不同之处在于这是一个GET而不是POST,但我已经在我的脚本中尝试过了,它没有什么不同。
我对此感到非常困惑,如果有任何新想法,我将不胜感激。
发布于 2016-03-05 04:11:13
我也遇到过同样的问题,对于我来说,我正在创建临时的iframe,并且我在ajax完成之前删除了iframe,这样浏览器就会取消我的ajax请求。
https://stackoverflow.com/questions/7577275
复制相似问题