1

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

Web 服务 URL 是

http://127.0.0.1/pbws/all/

调用它的网页是

http://127.0.0.1/~myusername/phonebook/

我不相信我的问题是 Wikipedia ( http://en.wikipedia.org/wiki/Same_origin_policy ) 上解释的同源策略我对 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 对此进行了测试。关于问题可能是什么或如何进一步调试的任何想法?

4

1 回答 1

0

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

我现在正在测试使用 HTML5 的 appcache 功能时如何允许 json 请求中的建议?

于 2012-11-24T04:28:47.883 回答