关于Juqery的Ajax错误返回,error方法中返回的参数与网上查到的不一样,详细看下面

我在项目中写了一个Ajax请求,特别奇怪的是,用电脑测试时是没有问题的,当我用了公司的无线网,和我自己的手机流量时,页面就没有反应,于是我在Ajax中用了error方法来弹一些数据想看一下原因。可是返回的数据,让我很迷惑,Ajax代码大概如下:

$.ajax({
    url: '//请求地址',
    data: {
        mob: 703
    },
    dataType: 'jsonp',//对了我是跨域请求,再强调一下电脑是没有问题,这个错误就发生在我用手机时的几个特定网络
    method: 'get',
    error: function(XMLHttpRequest, textStatus, errorThrown){
          alert('XMLHttpRequest.status: '+ XMLHttpRequest.status);
          alert('XMLHttpRequest.readyState: '+ XMLHttpRequest.readyState);
          alert('textStatus: '+ textStatus);
          alert('errorThrown: '+errorThrown);
     },
     success: function(){}
});

以上就是我大概Ajax的部分,我想我写的够清楚了。我再说一下手机上显示的内容吧。

XMLHttpRequest.status: undefined
XMLHttpRequest.readyState: undefined
//好像就没取到XMLHttpRequest一样
textStatus: error//网上查了好久也没查到error代表什么,大概的错误原因啥的
errorThrown: null

大概的情况就如上所述,还希望大神能帮忙解释一下,我在不停的找原因,快疯了。谢谢啦。

阅读 5.5k
1 个回答

在跨域方式下error回调是不会触发的,既然你的代码触发了error回调,说明你没有正确使用跨域。

以下内容摘自Jquery官方文档

This handler is not called for cross-domain script and cross-domain JSONP requests. 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题