Jquery 从Web服务获取有效响应时遇到问题
我目前正在为一个web服务开发一个web前端。我使用jQuery1.5.1作为JS框架,使用Firebug进行调试 首先,我用Firefox扩展“REST客户端”测试了web服务。 在那里,以下请求成功:Jquery 从Web服务获取有效响应时遇到问题,jquery,ajax,json,rest,Jquery,Ajax,Json,Rest,我目前正在为一个web服务开发一个web前端。我使用jQuery1.5.1作为JS框架,使用Firebug进行调试 首先,我用Firefox扩展“REST客户端”测试了web服务。 在那里,以下请求成功: {"requestUrl":"http://localhost:8080/Foobar/rest/goods?label=Schro","requestMethod":"GET","requestBody":"","headers":["accept","application/json"]}
{"requestUrl":"http://localhost:8080/Foobar/rest/goods?label=Schro","requestMethod":"GET","requestBody":"","headers":["accept","application/json"]}
现在,我想在jQuery UI autocomplete()方法的上下文中重现此请求:
我从jQueryUI自动完成中获取了这个配方
但是,这会触发错误事件。萤火虫说:
GET http://localhost:8080/Foobar/rest/goods/?label=Schrott - 200 OK 16ms
Antwort-Header
Server Foobar-Optimizer
Content-Type application/json;charset=UTF-8
Transfer-Encoding chunked
Date Wed, 09 Mar 2011 10:50:03 GMT
Anfrage-Header
Host localhost:8080
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b12) Gecko/20100101 Firefox/4.0b12
Accept application/json
Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Origin null
错误jqXHR表示:
[Object { readyState=0, status=0, statusText="error"}]
并且响应头为空
除了结果不同之外,这两个请求在我看来都是一样的。
如果有任何建议,我将不胜感激。多谢各位
更新:解决方案
这是一个跨域策略问题。我没有意识到这种行为。解决方案是将$.ajax数据类型从“json”更改为“jsonp”。这是一种覆盖这些策略并访问远程web服务的优雅方法
当然,web服务必须能够处理这种json“填充”
这里还提到了许多其他可能性:我可以自己回答这个问题:这是一个跨域安全策略问题。我没有意识到这种行为 以下链接包含一系列适用的方法:
您是否尝试删除“货物”后面的反斜杠?是的,结果是相同的:“错误”,并且没有给出进一步的信息。顺便说一下,来自webservice本身的控制台日志看起来非常好:我不知道具体的实现,但它看起来好像已经发送了请求的对象
[Object { readyState=0, status=0, statusText="error"}]