跨域AJAX GET调用无法获得XML响应

时间:2013-09-20 07:32:51

标签: xml ajax

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

Chrome错误:Access-Control-Allow-Origin不允许原点为空。

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

所有参数如username,密码查询字符串都在webservice URL中传递。

道歉:我无法发布代码和网址。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您正在尝试将AJAX运行到其他域(也称为跨域AJAX)。 当您直接从浏览器运行时,这是有效的,因为在执行此操作时没有跨域限制。

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

相关问题: - CORS - Cross-Domain AJAX Without JSONP By Allowing Origin On Server

答案 1 :(得分:0)

修复客户端代码:

如果您要发送$.get请求,则需要将“数据类型”作为“jsonp”传递给跨域AJAX get。

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

修复服务器端代码:

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

header('Access-Control-Allow-Origin: *');