我正在尝试从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进行了测试。有关问题是什么或如何进一步调试的想法?
答案 0 :(得分:0)
appcache导致我的jQuery Ajax调用失败。使用index.html中注释掉的appcache指令,REST WS调用正常工作。
我现在正在测试How do i allow json requests when using HTML5's appcache feature?
中的建议