2011-11-16 63 views
1

即時消息試圖做的是發送數據在JSON中使用jQuery到服務器並在服務器端接收它。之後,解析它並使用數據,然後以json形式再次回覆給客戶端。我在服務器端使用Play(基於網絡的Java框架)。這裏是我的代碼:使用JQuery發送JSON到服務器,但收到它時拋出錯誤

Tier.js

var attribs={ 
       id: document.forms["tier"]["id"].value , 
       name: document.forms["tier"]["name"].value , 
       limits: document.forms["tier"]["limits"].value 
       }; 

$.ajax({ 
     type:"get", 
     url: "validateTier.json" , 
     dataType: "json", 
     jsonp: 'callback', 
     data: attribs, 
     contentType: "application/json; charset=utf-8", 
     beforeSend: function(xhr) { 
      xhr.overrideMimeType('application/json; charset=utf-8'); 
      }, 
     error:function(x,e){ 
      if(x.status==0){ 
       alert('You are offline!!\n Please Check Your Network.'); 
       }else if(x.status==404){ 
       alert('Requested URL not found.'); 
       }else if(x.status==500){ 
       alert('Internel Server Error.'); 
       }else if(e=='parsererror'){ 
       alert('Error.\nParsing JSON Request failed.'); 
       }else if(e=='timeout'){ 
       alert('Request Time out.'); 
       }else { 
       alert('Unknow Error.\n'+x.responseText); 
       } 
     }, 
     success: function(data) { 
     alert(data.status); 
     }, 

     }).done(function(msg) { 
       alert("Data Saved: " + msg); 
     }); // End ajax 

在服務器端:

Map<String,Object> json = new HashMap<String,Object>(); 
     json.put("status", status); 
     json.put("message", msg); 
     renderJSON(json); 

輸出:

你是離線! 請檢查您的網絡。

+0

使用Firebug追查確切的錯誤..爲Ajax請求生成或不.. 可能是在json數據格式中存在一些錯誤。 請按照此..http://stackoverflow.com/questions/1255948 http://www.ibm.com/developerworks/library/wa-ajaxintro10/ –

+0

請求被生成,並且即時接收服務器端的所有參數,即時消息處理所有信息,但是當我發回時顯示錯誤。 –

回答

0

它看起來像我沒有實際發送數據到服務器作爲JSON - 你似乎只是發送參數作爲典型的名稱/值對。如果您的服務器後端正期待JSON,那很可能是您的錯誤來源。

+0

以及即時發送數據到服務器接收所有參數,但它導致問題,而在jquery side.server接收響應以下方式:{「消息」:「值應該是一個數字」,「狀態」:「2」}。我認爲這是jquery方面的問題,因爲它沒有收到它。 –

+0

你是否回覆了200狀態碼和響應? –

+0

沒有狀態代碼是0. –

相關問題