我试图通过 jquery 调用来调用跨域 Web 服务 $.ajax()
服务返回
<?xml version="1.0" encoding="utf-8"?>
<double xmlns="http://www.webserviceX.NET/">1.4248</double>
如果我指定 dataType xml(或未指定任何内容 - jquery 猜测正确),我会收到 XML Parsing Error: no element found Location: moz-nullprincipal:{4030734c-b902-4251-9067-1d1b5b15fc72} Line第 1 列,第 1 列:
错误(看起来服务没有返回任何内容)。但是,如果我指定 dataType jsonp
或 script
- 我可以在 firebug 中看到一切都正确返回;然而 jquery 显然试图评估结果并给出相应的错误(缺少分号或类似的错误)。
jQuery 中有没有一种方法可以启用跨域调用并且不对其进行评估?
注释:
- 我知道后备选项是调用我的服务器上的一个程序,该程序将调用 Web 服务并将结果返回到浏览器;
- 我确实指定了 crossDomain:true。似乎没有什么区别。
- “错误”函数确实被调用。但“data”包含“parseerror”,而不是原始值。
最佳答案
跨域ajax仅允许JSONP,不允许XML
在 JQuery 1.5 中,他们添加了 crossDomain:true
参数,该参数只是将 ?callback=>
值附加到 url
中。如果设置该参数,则还必须设置 dataType:'json'
。跨域 URL 还必须支持 JSONP 并提供您期望的数据。
关于jquery - 跨域Ajax调用找不到元素位置: moz-nullprincipal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7053995/