在ubuntu和chrome浏览器上测试我的应用程序时一切正常,但是当转移到使用debian和相同铬浏览器的生产机器时,我总是得到一个ajax错误0。
请求:
$.ajax({
type: 'POST',
url: "http://localhost:8080/rest/setvalue/1234",
dataType: "json",
success: function(objResponse) {
showMessage("Done");
},
error: errorHandler
});
尽管服务器正确处理了请求,但生产机器上会调用errorHandler!
感谢任何想法...
谢
------ ADDED ------
警告显示代码
function errorHandler(xhr, ajaxOptions, thrownError) {
showAlert("Error", "Error: " + xhr.status + "\n" +
"Message: " + xhr.statusText + "\n" +
"Response: " + xhr.responseText + "\n" + thrownError); }
是:
错误:0
消息:错误
回复:
答案 0 :(得分:1)
成功功能中缺少一个括号。
showMessage(“完成”;应该是showMessage(“完成”);
你能检查一下这是否解决了这个问题?
<强>编辑:强>
我的意见是问题与代码无关。很可能在您的情况下,AJAX请求被视为跨域请求,同一原始策略失败。这就是你得错误的原因:0。
我设法重现了这个案例(在Windows操作系统中),在以下情况下我遇到了同样的错误:
http://localhost:7001/MobileApp/index.html
并在http://www.example.com/MobileApp/test
上执行AJAX。http://localhost:7001/MobileApp/index.html
并在http://127.0.0.1:7001/MobileApp/test
上执行AJAX。http://127.0.0.1:7001/MobileApp/index.html
并在http://localhost:7001/MobileApp/test
http://192.168.1.2:7001/MobileApp/index.html
(其中192.168.1.2是我的私人IP地址)并在http://127.0.0.1:7001/MobileApp/test
上执行AJAX。上述案例被视为跨域请求,我收到了您提到的错误。
显然,在配置主机文件并将IP地址映射到主机名等之后,上述一些问题得到了解决,因为请求不被视为跨域。
总之,我建议调查相同的原始政策是否成功。