Webservice适用于Android,但不适用于IOS

时间:2017-11-16 10:32:24

标签: angular ionic3

我在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())
  }

2 个答案:

答案 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文件。