我正在尝试将脚本连接到 Microsoft 的 World-Wide Telescope 应用程序。后者在端口 5050 上侦听命令。它与浏览器在同一台机器上运行(现在是 Chrome,但据我所知,Firefox 7 和 IE 9 的行为是相同的)。
我正在发送带有原始 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 对象上的错误属性只是“错误”并且状态为 0。如果我在 Chrome 中查看网络请求,我会看到“(已取消)”作为状态并且没有响应.
如果我使用相同的 URL 并将其粘贴到新的浏览器选项卡中,我可以看到响应是预期的 XML。
当然,这里的不同之处在于这是一个 GET 而不是 POST,但我已经在我的脚本中尝试过,它没有任何区别。
我对此感到非常困惑,并希望获得任何新想法。