即時消息試圖做的是發送數據在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);
輸出:
你是離線! 請檢查您的網絡。
使用Firebug追查確切的錯誤..爲Ajax請求生成或不.. 可能是在json數據格式中存在一些錯誤。 請按照此..http://stackoverflow.com/questions/1255948 http://www.ibm.com/developerworks/library/wa-ajaxintro10/ –
請求被生成,並且即時接收服務器端的所有參數,即時消息處理所有信息,但是當我發回時顯示錯誤。 –