2016-06-04 5 views
0

Fehler Callback funktioniert nicht, wenn async Anfrage gesendet wird, aber Erfolg tut! und es funktioniert perfekt in Android und Browser. In iPhone funktioniert es für synchrone Anfrage. Hier ist mein Code. andere apis funktionieren einwandfrei.Ajax Fehler Callback nicht feuern für iPhone

$.ajax({ 
     type: 'POST', 
     url: "https://api.cloud.appcelerator.com/v1/users/login.json?key=xxxxxxxxx", 
     data: { 
      "login": useremail, 
      "password": password 
     }, 
     success: function (resp) {            
      console.log(resp); 
      console.log('User logged-in successfully');    
     }, 
     error: function (e) { 
      console.log(e) 
     } 
    }); 

API gibt den Statuscode 200 für eine korrekte E-Mail und Passwort, aber 401 für falsch ein, so wenn der Statuscode 200 seine Werke gut ich Antwort auf Erfolg.

+0

ich das Problem vermuten könnte den Ajax-Aufruf an die HTTPS-URL senden. Sind Sie sicher, dass der Anruf die Serverseite erreicht, wenn ein Ajax-Anruf vom iOS-Gerät ausgelöst wird? – Gandhi

+0

@Gandhi danke! aber es muss auf dem Server erreicht werden, da der Erfolgsrückruf auf dem iPhone-Gerät funktioniert. – saurabh

+0

In diesem Fall wie genau Sie Fehler von der Serverseite werfen, um zu erwarten, dass es in Fehlerrückruf gefangen wird? – Gandhi

Antwort

1

Dies scheint ein sehr häufiges Problem mit Cordova + iOS + jQuery Combo zu sein.

Scheint, als gäbe es einige Möglichkeiten, dieses 401-Problem Fehlerbehandlung zu lösen. Eine besteht darin, ein Timeout-Timeout-Attribut hinzuzufügen, während eine AJAX-Anforderung gestellt und der Fehler behandelt wird. Der andere Ansatz besteht darin, es auf der Serverseite zu handhaben, indem eine Anforderung über HTTPS gesendet wird und ein Authentifizierungstoken mit Fehlerdetails im Falle eines 401-Fehlers zurückgegeben wird.

Fordern Sie Sie an, diese post für weitere Informationen zu sehen.

Auch zur Zeit können Sie nicht diese beiden Fehler (401 und 408 Fehler) in iOS unterscheiden, wie ich diesen Fehler noch offen in der offiziellen Apache Cordova Bug Tracking System.Request sehen könnten Sie dies überprüfen zu bug

Verwandte Themen