跨域Ajax调用找不到元素位置:moz-nullprincipal

发布于 2024-11-29 14:13:33 字数 769 浏览 0 评论 0原文

我正在尝试通过 jquery 调用 $.ajax() 调用跨域 Web 服务 服务返回

<?xml version="1.0" encoding="utf-8"?>
<double xmlns="http://www.webserviceX.NET/">1.4248</double>

如果我指定 dataType xml (或未指定任何内容 - jquery 猜测正确),我将得到 XML 解析错误:找不到元素位置:moz-nullprincipal:{4030734c-b902-4251-9067-1d1b5b15fc72} 行号1,第 1 列: 错误(看起来服务没有返回任何内容)。但是,如果我指定 dataType jsonpscript - 我可以在 firebug 中看到一切都正确返回;然而jquery显然试图评估结果并给出相应的错误(缺少分号或类似的错误)。

jQuery 中有没有一种方法可以启用跨域调用并且不对其进行评估?

注意:

  1. 知道后备选项是调用我的服务器上的一个程序,该程序将调用 Web 服务并将结果返回到浏览器;
  2. 确实指定了 crossDomain: true。似乎没有什么区别。
  3. “错误”函数确实被调用。但“数据”包含“parseerror”而不是原始值。

I am trying to invoke a cross-domain web service through jquery call $.ajax() The service returns

<?xml version="1.0" encoding="utf-8"?>
<double xmlns="http://www.webserviceX.NET/">1.4248</double>

If I specify dataType xml (or not specifying anything - jquery guesses correctly), I am getting XML Parsing Error: no element found Location: moz-nullprincipal:{4030734c-b902-4251-9067-1d1b5b15fc72} Line Number 1, Column 1: error (looks like nothing is coming back from the service). However, if I specify dataType jsonp or script - I can see in firebug that everything is coming back correctly; however jquery apparently tries to eval the results and gives me corresponding error (missing semicolon or similar).

Is there a way in jQuery to enable cross-domain call and not evaluate it?

Notes:

  1. I know that the fallback option is to call a program on my server that will invoke the web service and return the result to the browser;
  2. I did specify crossDomain: true. It doesn't seem to make any difference.
  3. "error" function does get invoked. But instead of original value "data" contains "parseerror".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑,眼淚并存 2024-12-06 14:13:33

跨域 ajax 只允许 JSONP,而不是 XML

在 JQuery 1.5 中,他们添加了 crossDomain:true 参数,该参数只是将 ?callback=> 值附加到 网址。如果设置该参数,则还必须设置 dataType:'json'。跨域 URL 还必须支持 JSONP 并提供您期望的数据。

Cross domain ajax is only allowed for JSONP, not XML

In JQuery 1.5 they added the crossDomain:true parameter which simply appends a ?callback=> value to the url. If you set that parameter, you must also set dataType:'json'. The cross-domain URL must also support JSONP and be serving up your expected data as such.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文