【问题标题】:jQuery Ajax call fails on valid URLjQuery Ajax 调用在有效 URL 上失败
【发布时间】:2012-11-19 03:16:55
【问题描述】:

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

网络服务网址是

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 对此进行了测试。关于问题可能是什么或如何进一步调试的任何想法?

【问题讨论】:

  • 什么是http://127.0.0.1/pbws/all/返回
  • 并且您可以浏览到该页面,好吗? 127.0.0.1/pbws/all
  • 很好的问题,我想我要问的第一件事是,如果您在浏览器中加载页面,它会响应 200 吗?此外,chrome 是否为您提供了一个错误代码。即500、404?也许尝试将 dataType 更改为 jsonp,并考虑在“控制台”选项卡中查看,也许它会在那里给出更详细的错误。
  • 响应失败的http状态是什么

标签: javascript jquery ajax web-services rest


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    相关资源
    最近更新 更多