微信浏览器跨域设置crossDomain:false不请求服务器直接走error方法?
发布于 7 年前 作者 xiulanchang 7185 次浏览 来自 官方Issues
$.ajax({
   
"url": "https://xxxxx.xxx.com",
   
"type": "GET",
   
"data": {
       
"game_id": 26
   
},
   
xhrFields: {
       
withCredentials: true
   
},
   
beforeSend: function () {
       
load = layer.load(1);
   },
   
error: function (jqXHR, textStatus, errorThrown) {
       
layer.msg('服务器出问题了,请联系客服');
   },
   
success: function (json) {
       alert(JSON.stringify(json));
   },
   
complete: function () {
       
layer.close(load);
   }
});

代码如上。

因为跨域请求所以丢失了X-Requested-With: XMLHttpRequest请求头。

所以按照两种方案,一个是设置headers,一个是加上crossDomain:false。

ios下正常请求。

android下直接不请求服务器,直接执行error方法的

layer.msg('服务器出问题了,请联系客服');

只要去掉了headers或者crossDomain:false。

则android下请求也能成功。

其它浏览器是正常的。微信开发工具也是正常的。就真机下是不正常的。

请求!!!

回到顶部