Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从Web服务获取有效响应时遇到问题_Jquery_Ajax_Json_Rest - Fatal编程技术网

Jquery 从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"]}

我目前正在为一个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"]}
现在,我想在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"}]