2012-08-24 21 views
1

当在Ubuntu和铬浏览器上测试我的应用程序时,一切正常,但当移动到使用debian和相同铬浏览器的生产机器时,我总是得到ajax错误0。debian铬jquery ajax给出了错误信息0

  • 的jQuery 1.7.2版本
  • jQuery.mobile版本1.1.1
  • Tomcat服务器

请求:

$.ajax({ 
    type: 'POST', 
    url: "http://localhost:8080/rest/setvalue/1234", 
    dataType: "json", 
    success: function(objResponse) { 
     showMessage("Done"); 
    }, 
    error: errorHandler 
}); 

尽管服务器正确处理请求,errorHandler在生产计算机上被调用!

感谢您的任何想法...

弗兰克

------ ------的新增与代码所示

警报

function errorHandler(xhr, ajaxOptions, thrownError) { 
showAlert("Error", "Error: " + xhr.status + "\n" + 
     "Message: " + xhr.statusText + "\n" + 
     "Response: " + xhr.responseText + "\n" + thrownError); } 

是:

错误:0

消息:错误

响应:

回答

1

甲括号中缺少成功的功能。

showMessage( “完成”;应该是showMessage( “完成”);

你能检查是否能解决问题

编辑:?

我的看法是,这个问题不是代码相关的。很可能你的情况下的AJAX请求被认为是跨域请求,并且相同的源策略失败。这就是为什么你会得到错误:0。

我设法重现ca SE(在Windows OS)和我得到了同样的错误在下列情况下:

  1. 打开我的网页http://localhost:7001/MobileApp/index.htmlhttp://www.example.com/MobileApp/test执行AJAX。
  2. 打开我的网页http://localhost:7001/MobileApp/index.html并在http://127.0.0.1:7001/MobileApp/test上执行AJAX。
  3. 打开我的网页http://127.0.0.1:7001/MobileApp/index.htmlhttp://localhost:7001/MobileApp/test
  4. 执行AJAX打开我的网页http://192.168.1.2:7001/MobileApp/index.html(其中192.168.1.2是我的私有IP地址)和http://127.0.0.1:7001/MobileApp/test执行AJAX。

上述情况被认为是跨域请求,我得到了你提到的错误。

很明显,在配置我的主机文件并将IP地址映射到主机名等之后,上述问题已得到解决,因为这些请求并未被视为跨域。

总之,我会建议调查相同的原产地政策是否成功。

enter image description here

+0

没有抱歉,我的错误,我改变了复制粘贴。在应用程序代码 – Frank

+0

中没问题。你能不能发布出现的确切错误?它只是一个零? AJAX请求是否在同一个域中执行? –

+0

还有一个问题。在你的生产系统中,你在AJAX的url中使用localhost? –