撸三发
撸三发
  • 发布:2019-12-06 16:45
  • 更新:2019-12-06 17:18
  • 阅读:819

【报Bug】(十万火急)安卓调用webservice接口可以获取返回值,IOS获取不到返回值(十万火急)

分类:HTML5+

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]安卓调用webservice接口可以获取返回值,IOS获取不到返回值

重现步骤

[步骤]用webservice请求时真机运行的ios没办法获取返回值

[结果]{"data":"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>No such operation: (HTTP GET PATH_INFO: 路径)</faultstring></soap:Fault></soap:Body></soap:Envelope>","statusCode":500,"header":{"Date":"Fri, 06 Dec 2019 08:34:10 GMT","Content-Length":"270","Connection":"keep-alive","Content-Type":"text/xml;charset=UTF-8","Server":"nginx/1.16.1"},"errMsg":"request:ok"}

[期望]能够和安卓手机一样获取得到返回值

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]2.4.2.20191115

[windows版本号]window7 64位

[mac版本号]12.4.3

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]H5

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号]

[iOS版本号]12.4.3

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]
mui.ajax('http://路径/webservice/Webservice',{
data:data,
dataType:"text",
type:'post',
crossDomain:true,
contentType: "text/xml; charset=utf-8",
xhrFields: {withCredentials: true},
crossDomain: true,
timeout:10000,
processData:false,
success:function(data){
console.log(data);
},
error:function(resp){
// console.log(resp);
}
});
//第二种请求方式
var xhr = new plus.net.XMLHttpRequest();
xhr.onreadystatechange = function (e) {
switch ( xhr.readyState ) {
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
if ( xhr.status == 200 ) {
console.log( "xhr请求成功:"+xhr.responseText );
} else {
console.log( "xhr请求失败"+xhr.status);
}
break;
default :
break;
}
}
var data ="<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:web='http://路径/'><soapenv:Header/><soapenv:Body> 请求内容</soapenv:Body></soapenv:Envelope>";

        xhr.open("POST", 'http://路径/webservice/Webservice');  
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');    
        xhr.setRequestHeader('Accept','application/xml');  
        xhr.withCredentials=true;  
        xhr.send(data);  

//参数怎么设置都是获取不了

联系方式

[QQ]659338841

2019-12-06 16:45 负责人:无 分享
已邀请:
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

  • 撸三发 (作者)

    我使用plus.net.XMLHttpRequest也会访问不了webservice接口

    2019-12-06 17:34

  • 撸三发 (作者)

    demo里面含有plus.net.XMLHttpRequest的请求方式

    2019-12-06 17:34

  • DCloud_heavensoft

    回复 撸三发: 如果在plus ready后正常调用plus.net还无法访问,那就是接口有问题了

    2019-12-06 17:53

  • DCloud_heavensoft

    回复 DCloud_heavensoft: 注意wkwebview 的cookie管理很严格,无法跨域获取

    2019-12-06 17:54

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