J'utilise la commande jQuery $ .Ajax post pour appeler un événement AJAX sur mon serveur Web:
var formParams = "fe1=y&fe2=m&fe3=m"; $.ajax({ type: 'POST', url: '/foo.jsp', async: false, data: formParams, complete: function(xmlRequestObject, successString){ ymmReceiveAjaxResponse(xmlRequestObject, successString); } });
5 Réponses :
Utiliser succès code>:
S'il utilise succès code> ou
complet code> n'a aucune incidence sur les données qui ne sont pas envoyées au serveur en premier lieu. (Et il peut utiliser
complet code> s'il veut, ça fonctionne très bien. :-))
Essayez ceci:
$.ajax({ type: 'POST', url: '/foo.jsp', async: false, data: { fe1: "y", fe2: "m", fe3: "m" }, complete: function(xmlRequestObject, successString){ ymmReceiveAjaxResponse(xmlRequestObject, successString); } });
Mon erreur est que j'essayais d'accéder à $ _Post ["données"] .. mais si je voulais faire cela, je devrais l'avoir comme si Data: {Données: "Quelconvalue"}, b> .. Merci d'avoir nettoyé ça!
Votre code comme cité em> est bien (je l'ai essayé localement). Mon hypothèse est que la chaîne Par exemple, êtes-vous sûr de vous échapper des caractères Correctement (en utilisant Si vous passez dans un objet, JQuery traitera le codage URI pour vous. Si vous vraiment em> veux le faire vous-même: p> là, je n'ai pas codé les noms de champs parce que ces noms n'ont pas de caractères spéciaux en eux; Vous devez si vos noms de formulaire sont plus intéressants que cela. p> p> Formparams code> dans votre question n'est qu'un exemple, et en réalité, vous faites quelque chose pour générer cette chaîne à la volée et le problème réside dans que em> code à la place. p>
Encodéqueur code>
)? Ou mieux encore, laissez JQuery traiter avec elle, comme ceci: p>
Vous êtes totalement correct que c'est du code de stub; J'appellète réellement la méthode Serialize () sur un champ de formulaire IE - var guontams = $ ("# myform"). Serialize (); code>, et cela ne semble rien faire pour moi .
@MISSY: HMMM, Serialize code> gérera le codage pour vous, donc ce n'est pas ça. Fondamentalement, le code devrait fonctionner et fonctionne à cette fin, vous devrez donc passer à travers un débogueur et voir ce que l'envoi de JQuery en réalité. Ce pourrait être que JQuery fait son travail, mais pour une raison quelconque, la configuration acheminée la demande de votre JSP est gâchée.
La cause du problème a été trouvée à l'aide de Firebug et ouvrant l'ouverture du gadget net. P>
Je constate que le serveur Web répond avec un état 302 de l'appel à la page Web. p>
Développement de la demande de 302 Demande de Firebug / Net, et examinez rapidement les paramètres, les en-têtes, la réponse et HTML a rapidement identifié qu'il s'agissait d'une question spécifique à l'application provenant du serveur. P>
Merci pour les commentaires de tous P>
Après avoir essayé de frustration pendant quatre heures, j'ai découvert qu'il est capable de le réaliser en définissant le contenttype code> dans Ajax
post code> comme suit,
var dataToSend = {
"username" : $("#username").val(),
"password" : $("#password").val()
};
$.ajax({
type: "POST",
url: "somepage.jsp",
data: dataToSend,
contentType: "application/x-www-form-urlencoded; charset=UTF-8", //this is must
success: function(datum, msg, textStatus){
$("#result").html("<h3>" + "Status : " + msg + "</h3>")
.fadeIn("slow");
}
});
Cette question a été répondue dans d'autres threads, comme je suis tombé sur la cause du problème - en utilisant Firebug, et ouvrez l'ouverture de la filet Sniffer Do-Hicky, je constate que le serveur Web répond à un statut 302 sur l'appel à la page Web. Je vais décrire ma solution au problème dans un peu.