Je veux envoyer une chaîne en tant que paramètre Post ajax.
Le code suivant:
$.ajax({
type: "POST",
url: "http://nakolesah.ru/",
data: 'foo=bar&ca$libri=no$libri',
success: function(msg){
alert('wow'+msg);
}
});
Ne fonctionne pas. Pourquoi?
Essayez comme ça:
$.ajax({
type: 'POST',
// make sure you respect the same Origin policy with this url:
// http://en.wikipedia.org/wiki/Same_Origin_policy
url: 'http://nakolesah.ru/',
data: {
'foo': 'bar',
'ca$libri': 'no$libri' // <-- the $ sign in the parameter name seems unusual, I would avoid it
},
success: function(msg){
alert('wow' + msg);
}
});
$.ajax({
type: 'POST',
url:'http://nakolesah.ru/',
data:'foo='+ bar+'&calibri='+ nolibri,
success: function(msg){
alert('wow' + msg);
}
});
Je vois qu'ils n'ont pas compris votre question. La réponse est: ajoutez le paramètre "traditionnel" à votre appel ajax comme ceci:
$.ajax({
traditional: true,
type: "POST",
url: url,
data: custom ,
success: ok,
dataType: "json"
});
Et cela fonctionnera avec les paramètres PASSED AS A STRING.
Pour une application similaire, je devais envelopper mon objet data
avec JSON.stringify()
comme ceci:
data: JSON.stringify({
'foo': 'bar',
'ca$libri': 'no$libri'
}),
L'API fonctionnait avec un client REST mais ne pouvait pas le faire fonctionner avec jquery ajax dans le navigateur. stringify était la solution.
Pas sûr que ce soit toujours d'actualité… juste pour les futurs lecteurs. Si vous voulez vraiment passer vos paramètres dans l'URL, vous devriez probablement utiliser jQuery.param () .
Pas une réponse directe à votre question .. Mais suivre est la seule syntaxe qui fonctionnait pour moi auparavant -
data: '{"winNumber": "' + win + '"}',
Et le nom du paramètre correspond à l'argument de la méthode du serveur
J'ai également fait face à ce problème précis. Mais j'ai une solution et cela a fonctionné parfaitement. J'ai eu besoin de passer les paramètres qui sont déjà produits par la fonction javascript. Donc, le code ci-dessous fonctionne pour moi. J'ai utilisé ColdFusion pour le backend. Je viens d'utiliser directement les paramètres en tant que variable.
$.ajax({
url: "https://myexampleurl.com/myactionfile.cfm",
type: "POST",
data : {paramert1: variable1,parameter2: variable2},
success: function(data){
console.log(data);
} )};
Je faisais face au problème en passant la valeur de chaîne aux paramètres de chaîne dans Ajax. Après tant de recherches sur Google, je propose une solution personnalisée comme ci-dessous.
var bar = 'xyz';
var calibri = 'no$libri';
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
url: "http://nakolesah.ru/",
data: '{ foo: \'' + bar + '\', Zoo: \'' + calibri + '\'}',
success: function(msg){
alert('wow'+msg);
},
});
Ici, bar et calibre sont deux variables chaîne et vous pouvez transmettre n'importe quelle valeur chaîne aux paramètres de chaîne respectifs dans la méthode Web.