【发布时间】: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