2***@qq.com
2***@qq.com
  • 发布:2019-11-28 19:03
  • 更新:2019-12-07 12:29
  • 阅读:1301

【报Bug】IOS AJAX无法请求本地json文件,报错 xhr.status:0;安卓和浏览器无此问题

分类:HBuilderX

详细问题描述

h5plus version
正常版本:1.9.9.55933
异常版本:1.9.9.71153 --也是当前最新 HbuildX 2.4.2 自带基座采用的版本

在异常版本下HbuildX 2.4.2
IOS环境: AJAX无法请求本地json文件,报错 xhr.status:0;
安卓和浏览器无此问题

此段代码的功能 在8月份打包的版本下,IOS 安卓 浏览器 均无此问题,可以正常请求到本地JSON文件内容

重现步骤

[步骤]
1、新建一个测试文件 如:test.json {"foo":1,"bar":2}
2、在JS中调用

mui.ajax('../../libs/gis/geojson/test.json', {    
        type: 'get',  
        timeout: 10000,    
        crossDomain: true,    
        contentType: 'application/json',  
        dataType: 'text',    
        beforeSend: function(xhr) {    
        },    
        success: function(data, ts, xhr) {    
                    console.log('data:'+data)  
        },    
        error: function(xhr, ts, et) {    
            console.log('xhr.status:'+xhr.status);  
            console.log('xhr.responseText:'+xhr.responseText);  
        }  
        })  

[结果]
IOS真机运行执行结果如下:
18:24:57.167 xhr.status:0
18:24:57.187 xhr.responseText:
18:24:57.207 Error

安卓和浏览器执行结果如下
data:{"foo":1,"bar":2}

[期望]
IOS能和安卓/浏览器执行结果一致

IDE运行环境说明

HBuilderX

[IDE版本号]
2.4.2.20191115

[windows版本号]
windows7 旗舰版

App运行环境说明

[Android版本号]
9

[iOS版本号]
13.2

[手机型号]
苹果 iPhone 6s plus
安卓 小米 9
浏览器 Chrome 78.0.3904.108(正式版本) (64 位)

附件

[可重现代码片段]

mui.ajax('../../libs/gis/geojson/test.json', {    
        type: 'get',  
        timeout: 10000,    
        crossDomain: true,    
        contentType: 'application/json',  
        dataType: 'text',    
        beforeSend: function(xhr) {    
        },    
        success: function(data, ts, xhr) {    
                    console.log('data:'+data)  
        },    
        error: function(xhr, ts, et) {    
            console.log('xhr.status:'+xhr.status);  
            console.log('xhr.responseText:'+xhr.responseText);    
        }  
})

IOS 报错 安卓和网页正常
18:24:57.167 xhr.status:0
18:24:57.187 xhr.responseText:
18:24:57.207 Error

jQuery代码 是一样的结果

            $.ajaxSetup({  
                error: function(jqXHR, textStatus, errorThrown) {  
                    console.log('jqXHR.status:' + jqXHR.status)  
                    console.log(JSON.stringify(jqXHR))  
                    console.log('textStatus:'+textStatus)  
                    console.log('errorThrown: ' + errorThrown)  
                }  
            })  
            $.getJSON('../../libs/gis/geojson/test.json', function(json) {  
                console.log('getJSON')  
                    console.log(json)     
            })

IOS 报错,安卓和网页正常
18:54:21.183 jqXHR.status:0
18:54:21.203 {"readyState":0,"status":0,"statusText":"error"}
18:54:21.223 textStatus:error
18:54:21.243 errorThrown:

联系方式

[QQ]
86872740

2019-11-28 19:03 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com

请使用最新的mui.min.js
我使用https://cdnjs.cloudflare.com/ajax/libs/mui/3.7.1/js/mui.min.js 这个解决问题,原先用的是3.7.0版本

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