2017-11-16 2 views
0

Ich habe den unten stehenden Dienst in Angular geschrieben 4. Wenn ich versuche, es auf Android zu verbrauchen, funktioniert es, aber auf IOS bekomme ich Fehlerstatus: 0 für URL: null Need zu wissen wenn im Web-Service-Code etwas nicht stimmt?Webservice funktioniert auf Android aber nicht auf IOS

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

Welche Webansicht verwenden Sie in IOS? WKWebView? –

+0

wenn ja..es ist ein CORS-Problem .. –

+0

Ja, ich verwende WKWebView-Ansicht. Wie löst man dieses Problem? – Anik

Antwort

0

WkWebView erzwingt CORS im Gegensatz zu dem älteren UIWebView in IOS. Ionic wechselt dazu als Teil von IOS 11 Änderungen.

Sie müssen sicherstellen, dass Ihre serverseitige API im Antwortheader Origin: http:localhost:8080 zurückgibt (abhängig von der Technologie, die Sie zum Implementieren der API verwenden).

Oder verwenden Sie ionic-native/http Plugin, um es zu umgehen.

Dokument prüfen WKWebView Dokumentation here.

0

Ein weiterer Bereich, den ich in diesen Szenarien anpassen musste, ist die Freigabe von Ressourcen auf der weißen Liste, damit die App den Zugriff ermöglicht.

https://cordova.apache.org/docs/en/latest/guide/appdev/whitelist/

anzeigen <allow-intent> und <allow-navigation> Bereiche. Ich glaube, dass der ionic/cordova Build-Prozess diese inspiziert und die iOS plist.info Datei mit diesen Informationen aktualisiert.

Verwandte Themen