jQuery Ajax调用在有效URL上失败

时间:2012-11-19 03:16:56

标签: javascript jquery ajax web-services rest

我正在尝试从HTML / JavaScript应用程序访问REST Web服务。我通过Apache HTTPD 2.2访问Web应用程序和Web服务。 Web服务GET方法在浏览器中直接调用时可以工作(执行并返回数据)。当从Web应用程序尝试调用时,Web Service永远不会收到请求。

网络服务网址

http://127.0.0.1/pbws/all/

正在调用它的网页是

http://127.0.0.1/~myusername/phonebook/

我不相信我的问题是维基百科上解释的同源策略(http://en.wikipedia.org/wiki/Same_origin_policy)我正在为Web应用程序和被叫Web服务使用相同的主机,协议和端口。

失败的电话是:

getAll = function (callback) {
   $.ajax({
       type: "GET",
       url: "http://127.0.0.1/pbws/all/",
       dataType: "json",
       async: true,
       success: function (data, textStatus, jqXHR) {
          callback(data);
       },
       error: function (jqXHR, textStatus, errorThrown) {
          console.dir(jqXHR);
          alert('getAll error: ' + textStatus);
       }
   });
};

永远不会成功,只有错误。使用断点设置,jqXHR不包含任何有用的信息,我可以看到,textStatus =“error”,errorThrown为空。 Chrome开发者工具/网络标签显示状态为“(失败)”。

我已经在Windows 7上使用Chrome 23和Firefox 16进行了测试。有关问题是什么或如何进一步调试的想法?

1 个答案:

答案 0 :(得分:0)

appcache导致我的jQuery Ajax调用失败。使用index.html中注释掉的appcache指令,REST WS调用正常工作。

我现在正在测试How do i allow json requests when using HTML5's appcache feature?

中的建议