Javascript 给出空白响应的ajax
我有一个xml内容存储在位置,Javascript 给出空白响应的ajax,javascript,jquery,Javascript,Jquery,我有一个xml内容存储在位置,http://localhost:8080/cleo-primer/rest/elements/search?uid=1&query=facebook <element-list><element><term>facebook</term><name>Bing Facebook</name></element></element-list> 但这给了我一个空白的响应,当
http://localhost:8080/cleo-primer/rest/elements/search?uid=1&query=facebook
<element-list><element><term>facebook</term><name>Bing Facebook</name></element></element-list>
但这给了我一个空白的响应,当我使用firebug检查时,它显示XML解析错误:找不到元素位置:moz nullprincipal:{1e7688d3-7b3c-43ae-9142-5b183a7cbfda}行号1,第1列:在XML选项卡内您正在执行一个不允许的跨源调用。您的呼叫地址:
http://localhost
至http://localhost:8080
。调用未执行,将不会有响应。Chrome/Safari将在控制台中显示如下错误:
XMLHttpRequest无法加载http://targeturl
Originhttp://localhost
是访问控制允许原点不允许的
更多信息:
如果您可以对后端进行修改,使其发送正确的标题,将解决您的问题。。。(Access Control Allow Origin yourdomain
或Access Control Allow Origin*
用于Allow all)
更多信息:
要完成的其他几个选项
- 如果您使用apache:您可以使用apache代理将端口8080上的位置转发(映射)到另一个端口(如默认端口80)。我刚才发布了一篇关于它的文章
- 您还可以求助于jsonP(它不是xml而是json),使用一种通过scripttag加载资源的技术,您可以加载json,如果您认为json适合它的话。(将其包装为回调函数调用)
- 如果你不能做到这一点,你唯一的选择就是代理脚本。代理脚本是一种中间件。您向脚本发出请求,脚本获取数据并将其返回给您。例如您可以在asp、jsp、flash甚至Javaapplet中实现同样的功能
$.get('http://localhost:8080/cleo-primer/rest/elements/search', { uid: 1, query: request.term }, function(responseData){alert(responseData);});