Ext.Ajax.demande() appelle la défaillance de la fonction de rappel lors de la demande
Je suis en train de construire un PhoneGap - Sencha touch application pour iOS et Android plates-formes. Je suis le chargement d'un local .fichier js à l'aide de l'Ext.Ajax.demande de fonction ().
Drôle de chose qui se passe - les demandes réussit, mais la le "échec" callback est appelée.
Voici le code:
Ext.Ajax.request({
url: 'localfolder/foo.js',
success : function(xhr){
//not invoked
},
failure : function(response, options){
//response.status == 0
//wtf, response.responseText contains exactly the contents of the local .js file!
}
});
Quelqu'un a une Idée de pourquoi la "échec" rappel est déclenché alors qu'en fait la demande succedded?
[modifier]
Plus important encore, comment puis-je faire le "succès" de rappel pour être déclenchée à la place?
quelle est la réponse.statut?
réponse.status == 0 (j'ai édité la question et a ajouté que cette info)
réponse.status == 0 (j'ai édité la question et a ajouté que cette info)
OriginalL'auteur gardenofwine | 2011-08-21
Vous devez vous connecter pour publier un commentaire.
Ext.Ajax examine simplement le code d'état de la sous-jacentes XHR (XmlHttpRequest) de l'objet qu'il crée. Cependant, il (à tort) suppose que l'état est un état HTTP. Que ce Mozilla-à condition de l'article discute, lors de fichier: ou ftp: schémas sont utilisés, un statut de valeur de 0 indique la réussite.
Vous pouvez modifier le onComplete fonction Ext.les données.Connexion (en src/data/Connection.js) pour regarder le schéma de l'URL, et de décider si elle doit utiliser un HTTP statut ou un "0=OK" afin de déterminer le succès.
Il est parfaitement légal pour les non-réussite résultats ont un corps qui peut être utilisé par le client. C'est pourquoi votre réponse.responseText encore s'affiche correctement.
OriginalL'auteur mmigdol
J'ai l'habitude à l'aide de ce type de réponse, peut-être que ça vous aidera
remplacez le [] avec xhr donc ça va comme { success:true,les données: xhr }
OriginalL'auteur Rid Zeal