您的位置:首页 > Web前端 > JavaScript

解决:后台传来的有特殊字符的JSON串,解析出现200错误的情况

2017-01-17 16:13 411 查看
一、问题:

后端因为Excel导入或者其他原因出现一些奇奇怪怪的不可见字符,比如全角空格、制表符等。用ajax取值的时候,遇到这种情况后台正常,前端也只是抛出200,不算是错误的错误。前台取值处于懵逼状态:没有错却没有值。

二、解决:

暴力直接上代码

/**
* 用于解析后台传来的有特殊字符的JSON串,解决解析出现200错误的情况
* @param url
* @param requestData 参数
* @param callback 回调函数
* @param failCallback 出错时的回调
*/
var baoAjax = function (url,requestData,callback,failCallback) {
$.ajax({
type : "post",
url : url,
dataType:"json",
data:requestData,
success : function(data) {
if($.isFunction(callback)){
callback(data);
}
},
error:function(xhr, textStatus, errorThrown){
console.log(xhr);
if(textStatus=="parsererror"){
var jsonString = xhr.responseText;
//解析异常
try{
callback(JSON.parse(jsonString));
}catch (e){
try{
var data = (new Function("return " + jsonString))();
callback(data);
}catch(e2){
console.error("baoAjax解析数据异常!"+url);
}
}
}else{
if($.isFunction(failCallback)){
failCallback();
}
}
}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jquery ajax