木木月半
木木月半
  • 发布:2019-10-28 11:22
  • 更新:2019-10-28 22:36
  • 阅读:2369

真机调试IOS时,mui.ajax无法发送同步请求

分类:HBuilderX

真机调试IOS时,mui.ajax无法发送同步请求,即在代码中设置了async: false,也还是会以异步的方式;
但此在安卓手机手机是没有问题的,所以很奇怪,这是IOS系统的问题还是mui的bug?

2019-10-28 11:22 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

我也遇到了,一发起请求就是abort,可能是编译器的问题,用HBuilder 2.2.0.20190810进行iOS模拟可以

  • 木木月半 (作者)

    感谢回复,我开始遇到过abort的问题,但是替换最新的mui.min.js文件后,这个问题解决了。但是出现新的问题,也就是上面提到的无法发送同步请求的问题;

    2019-10-28 11:37

  • 一休111

    回复 木木月半: 你好abort问题是怎么解决的呢。我用的mui.ajax请求的是http

    2019-10-28 17:09

  • 一休111

    回复 一休111: 哦哦找到了还要再配置文件上配置"XMLHttpRequest": {

    "description": "跨域网络连接"

    }

    2019-10-28 17:14

  • 木木月半 (作者)

    回复 一休111: 这个问题,我是直接更新最新版本的mui.min.js文件解决的,网上有不同的解决办法... 现在也不确定什么问题引起的,反正解决了。 现在这个苹果手机真机调试无法发送同步请求的问题不知道怎么回事

    2019-10-28 20:35

  • 忘记

    回复 木木月半: 你这个是怎么解决的呢? 我这个升级WKWebview,https mui.ajax 同步不起作用

    2020-04-11 12:54

1***@qq.com

1***@qq.com

你试下crossDomain:true,这个https://ask.dcloud.net.cn/question/9703

  • 木木月半 (作者)

    测试过了,也没有效果

    2019-10-28 20:41

木木月半

木木月半 (作者)

代码如下:
document.getElementById("Login").addEventListener('tap', function() {
console.log('begin')
mui.ajax(url, {
data: {
parameters: para
},
async: false,
dataType: 'json', //服务器返回json格式数据
type: 'post', //HTTP请求类型
headers: {
'Content-Type': 'application/json'
},
success: function(data) {
console.log('success')
plus.nativeUI.alert('success');
if(data.LoginResultType == 1) {
plus.nativeUI.alert('登入成功');
} else {
console.log(data.Message);
}
},
error: function(xhr, type, errorThrown) {
//异常处理;
console.log(errorThrown);
}
});
console.log('end')
});

IOS真机调试日志信息:
begin
end
success

但是用安卓手机输出的是:
begin
success
end

DCloud_heavensoft

DCloud_heavensoft

因iOS13起UIWebview被列为非公开API,未来会被App Store拒绝。从HBuilderX 2.3.0+起,iOS App的默认webview从UIwebview改为了WKWebview。WKWebview与UIWebview有部分区别,包括更严格的联网或canvas跨域限制,详见:https://ask.dcloud.net.cn/article/36348

  • 木木月半 (作者)

    感谢您的回复,之前考虑过这个地方引起的,但是因为有别的报错影响了我的判断,没想到真的改完就可以了;

    再次感谢!

    2019-10-28 22:53

  • 3***@qq.com

    回复 木木月半: 请问您改了什么好的,我加了crossDomain:true这个之后,同步还不行

    2020-01-13 17:36

  • DCloud_heavensoft

    回复 3***@qq.com: 和crossDomain:true没有关系,仔细看我发的文章

    2020-01-13 17:47

  • 3***@qq.com

    回复 DCloud_heavensoft: 我先切回了UIWebview,使用了jq的同步方法,mui的同步还是不行

    2020-01-13 20:59

该问题目前已经被锁定, 无法添加新回复