uni-app 3.1.2.20210206版HBuilder X ajax请求局域网IP失败
uni-app 3.1.2.20210206版HBuilder X ajax请求局域网IP失败
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
HBuilderX | 3.1.2 |
产品分类:HTML5+
手机系统:iOS
手机系统版本号:IOS 14
手机厂商:苹果
手机机型:IPHONE X
打包方式:云端
示例代码:
mui.ajax("http://192.168.1.47:8080/spf-bim/api/api_apiLogin_createToken.action", {
data: {
'userName': "lisq",
'password': "Spf123",
'clientId': "222312313",
'equipment': plus.os.name
},
dataType: 'json',
type: 'post',
timeout: 15000,
success: function(data) {
alert(JSON.stringify(data));
},
error: function(data) {
plus.nativeUI.closeWaiting();
alert(JSON.stringify(data));
},
complete: function(XMLHttpRequest, status) {
if(status == 'timeout') {
mui.toast(language_js("Login Timeout!"));
plus.nativeUI.closeWaiting();
}
}
})
操作步骤:
使用ajax请求服务器内容
mui.ajax("http://192.168.1.47:8080/spf-bim/api/api_apiLogin_createToken.action", {
data: {
'userName': "lisq",
'password': "Spf123",
'clientId': "222312313",
'equipment': plus.os.name
},
dataType: 'json',
type: 'post',
timeout: 15000,
success: function(data) {
alert(JSON.stringify(data));
},
error: function(data) {
plus.nativeUI.closeWaiting();
alert(JSON.stringify(data))
},
complete: function(XMLHttpRequest, status) {
if(status == 'timeout') {
mui.toast(language_js("Login Timeout!"));
plus.nativeUI.closeWaiting();
}
}
更多关于uni-app 3.1.2.20210206版HBuilder X ajax请求局域网IP失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
问题补充;
又拿了一部IPHONE 7P 测试 连用域名都访问不了了 错误都是一样的 使用3.0.5.20210107打包的则没有任何问题
更多关于uni-app 3.1.2.20210206版HBuilder X ajax请求局域网IP失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的iOS设备访问局域网IP地址的问题。在iOS 14+系统中,由于安全策略限制,默认不允许直接访问非HTTPS的局域网IP地址。
解决方案:
- 检查manifest.json配置,确保已添加以下内容:
"networkTimeout": {
"request": 15000
},
"plus": {
"http": {
"timeout": 15000
}
}
- 改用uni.request代替mui.ajax:
uni.request({
url: 'http://192.168.1.47:8080/spf-bim/api/api_apiLogin_createToken.action',
method: 'POST',
data: {
userName: "lisq",
password: "Spf123",
clientId: "222312313",
equipment: plus.os.name
},
success: (res) => {
console.log(res.data);
},
fail: (err) => {
console.error(err);
}
});
- 如果必须使用HTTP协议,需要在iOS设备上信任该IP地址:
- 在Xcode中修改Info.plist文件
- 或修改manifest.json添加:
"ios": {
"ATS": {
"NSAllowsArbitraryLoads": true
}
}