如何在ajax调用中过滤掉非法的json

时间:2015-12-15 18:30:15

标签: jquery json ajax

我有一个Web服务器1来访问Web服务器2端点。

Web服务器1有许多ajax调用。一种是访问Web服务器2'https://webserver2.com/getresults'的端点:

  var deferCallReturn = $.ajax({
    type: 'GET',
    contentType: "application/json",
    crossDomain : true,
    dataType: 'jsonp',
    url: 'https://webserver2.com/getresults'
  });

  deferCallReturn.done(function(data) {
    // Process result. 
  })
  .fail(function(data) {
    // Process error. 
  });

Web服务器2端点结果有2行。第1行是非法的json,我无法改变。

  )]}'
  {"result": ["1", "2"]}

此结果导致失败功能被触发。

我的问题是

1)如何删除非法json的第1行,以便调用成功函数?

2)我尝试了ajaxSetup,但无法在'data'参数中获得任何结果。这是解决它的方法吗?我的理解是所有ajax调用结果都是由dataFilter处理的,但是,只有1个ajax调用有这个问题。如何只处理这一个电话?

  $.ajaxSetup({
    dataFilter: function(data, type) {

      if (type == 'jsonp') {
        // Will remove 1st illegal json, and then return. But, not getting anything here? When getting here, data=undefined.     
        // return data;

      } else {
        return data;
      }
    }
  });

0 个答案:

没有答案