Ajax ne fonctionne Pas sous IOS 9.0 Cordova
$.ajax({
type: "GET",
url: "http://myweb/php",
success: function (data){
alert(data);
},
error:function(xhr,textStatus,err)
{
alert("readyState: " + xhr.readyState);
alert("responseText: "+ xhr.responseText);
alert("status: " + xhr.status);
alert("text status: " + textStatus);
alert("error: " + err);
}
});
Et le résultat que j'obtiens est:
readyState:0
responseText:""
status:0
text status:error
error:""
J'essaie ajouter un en-tête dans mon php, mais toujours pas de travail. Le code ajax travail avant de me mettre à jour mon xcode pour ios 7.0 et simulateur de 9.0.
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
Vous devez vous connecter pour publier un commentaire.
Que j'ai compris l'ensemble de l'ATS (Application de la Sécurité des Transports - iOS 9) de la chose, la méthode recommandée de area28 ne doit pas être celui que vous utilisez à l'intérieur d'une application.
Cela permet à toutes les demandes de l'extérieur à chaque domaine de ce qui est définitivement pas la façon dont vous devriez utiliser. À mon avis, vous devez définir un nouveau
<dict>
à l'intérieur de votreinfo.plist
et ajoutez ce code (modifier lainfo.plist
vous pouvez simplement utiliser un éditeur de textes normal comme sublime text, etc.):Cela permettra seulement des demandes pour le domaine spécifié. La façon décrite est celle qui apple présenté à la WWDC 2015. Comme vous pouvez le voir sur la capture d'écran, c'est la manière d'apple souhaitez que les utilisateurs de l'utiliser.
Si vous n'avez pas spécifié de quoi que ce soit, vous aurez
Donc, le changement comme je l'ai dit et l'erreur est disparu.
Si vous travaillez dans un projet Xcode vous pouvez avoir à modifier le
info.plist
fichier. La sécurité a évolué avec iOS9. Apple est fortement recommander l'utilisation de https pour le web demande lorsque cela est possible. Ici est une réponse à ce sujet.À partir de ce post:
L'ajouter à vos infos.fichier plist.
Pour moi, c'était une combinaison de @area28 et @Sithys de réponse. J'ai donc fini par en ajoutant ceci à mes infos.plist:
Pour ceux d'entre vous qui peut venir à travers cette situation à l'avenir. J'ai eu le même problème et il s'est avéré être dû au certificat SSL auto-signé (serveur de développement). iOS 9 Cordova (UIWebView - ce n'est pas sûr WKWebView) serait en silence échouer et retourner readyState:0, responseText:"", état:0
De l'androïde 7 de ne pas avoir ce problème.