ajax给出空白响应

ajax giving blank response

本文关键字:响应 空白 ajax      更新时间:2023-09-26

我在位置http://localhost:8080/cleo-primer/rest/elements/search?uid=1&query=facebook 中存储了一个xml内容

<element-list><element><term>facebook</term><name>Bing Facebook</name></element></element-list>

我正在发送获取请求

 $.get('http://localhost:8080/cleo-primer/rest/elements/search', { uid: 1, query: request.term }, function(responseData){alert(responseData);});

但这给了我一个空白的响应,当我使用firebug进行检查时,它显示XML解析错误:找不到元素位置:moz nullprincipal:{1e7688d3-7b3c-43ae-9142-5b183a7cbfda}行号1,列1:在XML选项卡内

您正在执行一个不允许的跨原点调用。您正在从:http://localhost呼叫http://localhost:8080。调用未执行,也不会有响应。Chrome/Safari将在控制台中显示这样的错误:

XMLHttpRequest无法加载http://targeturl来源访问控制允许来源不允许http://localhost

更多信息:http://en.wikipedia.org/wiki/Same_origin_policy#origin_determination_rules

如果你能对后端进行修改,让它发送正确的头,就能解决你的问题。。。(允许全部使用Access-Control-Allow-Origin yourdomainAccess-Control-Allow-Origin *

更多信息:http://enable-cors.org

还有几个其他选项需要完成。。。

  • 如果您使用apache:您可以使用apache代理将端口8080上的位置转发(映射)到另一个端口(如默认端口80)。我不久前发布了一个关于它的问题/答案
  • 您还可以使用通过scripttag加载资源的技术来使用jsonP(它不是xml,而是json),如果您的json适合它,您可以加载json
  • 如果您不能做到这一点,那么您唯一的选择就是代理脚本。代理脚本是一种中间件。您向脚本发出请求,脚本获取数据并将其返回给您。例如php代理。您可以在asp、jsp、flash甚至javaapplet中做同样的事情