我在Angular 4中编写了以下服务。当我尝试使用它时 在Android上它可以工作,但在IOS上我得到错误状态:0表示URL:null 需要知道网络服务代码中是否有问题?
getConversationData(userText : string){
let userName = 'XYZ'
let meetingType = 'ABC'
let url = 'serverURL' + '/Conversation'
return this.http.post(
url,
{
headers : {'Content-Type': 'application/json charset=UTF-8',
'Accept': 'application/json'},
"message" : userText,
"username" : userName,
"MeetingType" : meetingType
},
).map(response => response.json())
}
答案 0 :(得分:0)
与IOS中较旧的UIWebView不同,WkWebView强制执行CORS。 Ionic正在转变为IOS 11变化的一部分。
您需要确保服务器端API在响应标头中返回Origin: http:localhost:8080
。(取决于您用于实现API的技术)。
或使用ionic-native/http插件绕过它。
检查文档WKWebView文档here。
答案 1 :(得分:0)
我在这些类型的场景中必须调整的另一个方面是将资源列入白名单,以便应用允许访问。
https://cordova.apache.org/docs/en/latest/guide/appdev/whitelist/
查看<allow-intent>
和<allow-navigation>
区域。我相信ionic / cordova构建过程将检查这些并使用此信息更新iOS plist.info文件。