J'ai une fonction qui fait une demande Ajax pour toute ancre. La méthode de la demande peut être obtenue ou poster. Dans ce cas, je veux faire un message sans utiliser de formulaire, mais la requête Ajax jette une erreur avant même d'envoyer la demande. L'erreur a la valeur "Erreur" et toutes les variables d'erreur / description de l'échec sont "".
$("body").on("click","a.ajax",function(event) {
var _elem = getDataElem($(this));
var _method = getRequestMethod($(this));
var _partial = getRequestPartial($(this));
handlers.do_request(event,$(this).attr("href"),_elem, _method, _partial);
});
var handlers = (function() {
var obj = {};
obj.do_request = function(event,url,elem_id,method,data) {
event.preventDefault();
loadPage(url,elem_id,method,data);
history.pushState({selector:elem_id,method:method,data:data},null,url);
};
}());
4 Réponses :
Juste une suppose, mais dans le docs Le paramètre Type est dans toutes les capsules, c'est-à-dire 'post' code> et pas 'post' code>. p>
JavaScript est sensible à la casse, alors les deux ne devraient pas nécessairement travailler. J'ai vérifié la source de jQuery ( GITUB.COM/JQUERY/JQUERY/ blob / maître / src / ajax.js # L455 ), et on dirait qu'ils convertissent le paramètre type en majuscules, donc je suppose que cela n'a pas d'importance.
Essayez:
function loadPage(url,elem_id,method,dat) {
ajaxLoading(elem_id);
$.ajax({
type: method,
url: url,
data: dat,
success:function(data){
$("#"+elem_id).html(data);;
},
error:function(request,textStatus,error){
alert(error);
}
});
}
Essayé cela maintenant, pas de succès. Toujours jetant une erreur sans même envoyer la demande. Merci pour la réponse bien que.
ne pouvait pas résoudre le problème, ils ne pouvaient pas non plus trouver la raison pour laquelle cela se produisait. Bien que j'ai trouvé un moyen autour, en utilisant une forme vide cachée au lieu d'une ancre avec la méthode 'Post'. Pour une forme, la fonction fonctionnait bien. P>
Merci pour les réponses p>
Je viens de ressentir ce problème et après une heure ou deux, pensez essayer de définir le cache sur false. Cela corrigé pour moi. Malheureusement, lorsque j'ai retiré le cache, ma demande fonctionnait comme si elle n'avait jamais eu de problème. Il semble que la définition OH bien. P> P> cache: false code> a fait quelque chose "Cliquez". P>
Votre réponse au serveur ne doit pas autoriser la mise en cache si les données que vous essayez de récupérer (en supposant un obtenir code>, bien que la question soit sur un post code>) est dynamique. Ensuite, le cache : faux code> ne doit pas être requis.
Dites-vous que la demande et les variables TextStatus sont vides
Devrait-il
POST code> être capitalisé? C'est dans les docs.Pouvez-vous publier le code indiquant comment vous appelez
loadpage code>?textStatus a la valeur "erreur" et erreur a la valeur ""
Ajouté le code qui appelle la fonction de chargement
Connectez-vous les valeurs de paramètre dans Loadpage à la console.
Essayez de faire la demande dans un navigateur qui vous permet de déboguer des demandes de réseau (c'est-à-dire chrome) ou d'exécuter la demande via un proxy (c'est-à-dire Charles) et voyez si une demande est effectuée, et si oui quel est le statut de cette demande.