2014-09-12 101 views
1

我有一個JSON字符串與我{offer.offer.offerId.USSellerId:{$ GT:50}}。我所要做的就是使用這個json查詢作爲有效負載調用POST REST服務並獲取返回的JSON。阿賈克斯後返回Object {readyState的= 0,狀態= 0,狀態文本= 「錯誤」}

我能夠使用先進的鉻其餘客戶端調用該服務,我找回數據。但我的問題是,當我嘗試使用下面的代碼行來調用這個服務,我得到以下錯誤

$.ajax({ 
     url:"http://10.242.172.12:8080/cqs/services/services/cqs/search", 
     Accept: "application/json", 
     type: "POST", 
     contentType: "application/json", 
     data: {"offer.offer.offerId.USSellerId": {"$gt": 50}}, 
     async:true, 
     crossDomain: true, 
     always: function(data, textStatus, errorThrown) { 
     console.log(data) 
     console.log(textStatus) 
     }, 
     success: function (data) { 
      console.log(data) 
      alert(data); 
     }, 
     error: function (data, status, err) { 
      console.log(data) 
      console.log(status) 
      console.log(err) 
     } 
    }); 

我在控制檯看到以下內容:

對象{readyState的= 0,狀態= 0,狀態文字=「錯誤」} 錯誤 emptry字符串..

我無法理解此錯誤。當我沒有谷歌這個錯誤,許多建議告訴它可能是跨瀏覽器問題。我無法控制服務器端代碼。

我該如何修復客戶端的跨瀏覽器錯誤?

+0

你檢查'內容type' http頭?如果你真的在發送json數據,你應該在'ajax'設置中指定正確的'contentType',因爲jQuery使用'application/x-www-form-urlencoded'作爲默認的內容類型,參見[documentation](http:// api.jquery.com/jquery.ajax/)。 – 2014-09-13 20:08:42

+0

嗨IIya,我改變了我的jQuery的崗位AJAX,但這個時候,我得到一個奇怪的錯誤回到它沒有什麼可說的:( – user3773712 2014-09-13 23:04:28

+0

最有可能您的要求甚至不會現在送兩件事情 - 包裝您的數據對象在'JSON.stringify()'中,並在控制檯中尋找錯誤 – 2014-09-14 07:24:52

回答

3

請檢查XMLHttpRequests being stopped

如果你最終與具有狀態一個XMLHttpRequest = 0和 狀態文本= null,則意味着該請求是不允許被 執行。這是不安全的。這方面的一個可能的原因是當 XMLHttpRequest的原點(在創建了XMLHttpRequest的)具有 當XMLHttpRequest是再打開()改變。這種情況可能發生 例如當一個人有一個的XMLHttpRequest是大幹快上的 onunload事件發射的窗口:在XMLHttpRequest的獲取實際上創建 時要關閉的窗口仍然存在,然後將請求 發送(即打開()),當這個窗口已經失去了焦點並且可能不同的窗口已經獲得焦點。避免這個問題的方法是 在新窗口設置了一個偵聽器「activate」事件,當 舊窗口的「卸載」事件觸發時,該事件被設置。