0

我有一个请求的 Web 服务 URL,它将返回一个 XML 响应。当我直接在浏览器中发布 URL 时,我得到了响应。但是当我进行 AJAX 调用时,它会失败。

Chrome 错误:Access-Control-Allow-Origin 不允许 Origin null。

Firefox 错误:XML 解析错误:找不到元素位置:moz-nullprincipal:{e0bbb28b-e8ae-4b43-a266-428a24f9278d} 第 1 行第 1 列。

所有参数,如用户名、密码查询字符串都在 Web 服务 URL 中传递。

抱歉:我无法发布代码和 URL。

任何帮助是极大的赞赏。

4

2 回答 2

1

您正在尝试将 AJAX 运行到不同的域(也称为跨域 AJAX)。这在您直接从浏览器运行时有效,因为这样做时没有跨域限制。

解决方案: - 使用 CORS ( http://en.wikipedia.org/wiki/Cross-origin_resource_sharing ) - 使用 JSONP ( http://en.wikipedia.org/wiki/JSONP ) - 在服务器端使用代理

相关问题: - CORS - 没有 JSONP 的跨域 AJAX 通过允许服务器上的来源

于 2013-09-20T07:38:24.983 回答
0

修复客户端代码:

如果您正在发送$.get请求,则需要将 Data-Type 作为 'jsonp' 传递给跨域 AJAX 获取。

您也可以尝试 $.getJSON 方法。您可以在The jQuery Cross-Domain Ajax Guide中阅读更多内容。

或者

修复服务器端代码:

您可以启用跨域服务,例如。在 PHP 中

header('Access-Control-Allow-Origin: *');
于 2013-09-20T07:39:58.320 回答