jQuery envoie une chaîne en tant que paramètres POST

Je veux envoyer une chaîne en tant que paramètre ajax Post.

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?

76
demandé sur xav 2011-02-19 00:44:34

7 réponses

Essayez comme ceci:

$.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);
    }
});
155
répondu Darin Dimitrov 2011-02-18 22:09:50
$.ajax({
   type: 'POST',    
url:'http://nakolesah.ru/',
data:'foo='+ bar+'&calibri='+ nolibri,
success: function(msg){
    alert('wow' + msg);
         }
     });
29
répondu Chakavak Behzad 2012-12-15 10:53:04

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 passés sous forme de chaîne.

10
répondu vitaly goji 2014-11-18 17:34:09

Pour une application similaire, j'ai dû envelopper mon data objet 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.

8
répondu Dylan Valade 2014-10-20 15:36:29

Je ne sais pas si cela est toujours réel.. juste pour les futurs lecteurs. Si ce que vous voulez vraiment est de passer vos paramètres dans le cadre de L'URL, vous devriez probablement utiliser jQuery.param () .

4
répondu egnarts-ms 2013-02-18 12:56:05

Pas une réponse directe à votre question.. Mais voici la seule syntaxe qui fonctionnait pour moi -

data: '{"winNumber": "' + win + '"}',

Et le nom du paramètre correspondent à l'argument de la méthode serveur

1
répondu Lijo 2014-06-24 20:06:08

J'étais confronté au problème en passant la valeur de chaîne aux paramètres de chaîne en Ajax. Après tant de googling, j'ai trouvé 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 calibri sont deux variables de chaîne et vous pouvez passer n'importe quelle valeur de chaîne aux paramètres de chaîne respectifs dans la méthode web.

-2
répondu Sohel Pathan 2015-09-23 06:54:44