[jQuery] 关于使用 ajax 时处理返回的数据
这里作个记录平时使用的经验:
/*************************************
假设正确的返回值格式为:
{"state":1,"msg":"return_message"}
*************************************/
$.ajax({
'type': 'POST',
'dataType': 'json',//注意这里使用了 json
'url':'http://www.test.com/',
'data': 'your_data=your_data',
success: function(data){
try
{
if (data.state == 1)
{
//处理
}
else
{
//处理
}
}
catch (err)
{
alert(err);
}
},
error: function(data){
//这里不能使用 data.msg 来获取返回的信息
//因为只要返回的数据格式不是 json,都会跑到这里
var msg = '网络错误,请重新尝试';
alert(msg);
}
});
/*****************************************
返回值有可能是 json,也有可能不是 json
******************************************/
$.ajax({
'type': 'POST',
'dataType': 'json',//注意这里使用了 json
'url':'http://www.test.com/',
'data': 'your_data=your_data',
success: function(data){
try
{
if (data.state == 1)
{
//处理
}
else
{
//处理
}
}
catch (err)
{
alert(err);
}
},
error: function(data){
var msg = '网络错误,请重新尝试';
//如果是 json 格式
if (data.match("^\{(.+:.+,*){1,}\}$"))
{
data = eval("("+data+")");
msg = data.msg;
}
alert(msg);
}
});
假设正确的返回值格式为:
{"state":1,"msg":"return_message"}
*************************************/
$.ajax({
'type': 'POST',
'dataType': 'json',//注意这里使用了 json
'url':'http://www.test.com/',
'data': 'your_data=your_data',
success: function(data){
try
{
if (data.state == 1)
{
//处理
}
else
{
//处理
}
}
catch (err)
{
alert(err);
}
},
error: function(data){
//这里不能使用 data.msg 来获取返回的信息
//因为只要返回的数据格式不是 json,都会跑到这里
var msg = '网络错误,请重新尝试';
alert(msg);
}
});
/*****************************************
返回值有可能是 json,也有可能不是 json
******************************************/
$.ajax({
'type': 'POST',
'dataType': 'json',//注意这里使用了 json
'url':'http://www.test.com/',
'data': 'your_data=your_data',
success: function(data){
try
{
if (data.state == 1)
{
//处理
}
else
{
//处理
}
}
catch (err)
{
alert(err);
}
},
error: function(data){
var msg = '网络错误,请重新尝试';
//如果是 json 格式
if (data.match("^\{(.+:.+,*){1,}\}$"))
{
data = eval("("+data+")");
msg = data.msg;
}
alert(msg);
}
});