2012-08-24 48 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? –