有特殊字符的JSON串

/**
* 用于解析后台传来的有特殊字符的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();
      }
    }
    }
  });
}

posted @ 2017-04-26 10:57  思路决定出路  阅读(126)  评论(0编辑  收藏  举报