Pytanie jQuery wysyła ciąg jako parametry POST


Chcę wysłać ciąg jako parametr Posta ajax.

Poniższy kod:

$.ajax({
   type: "POST",
   url: "http://nakolesah.ru/",
   data: 'foo=bar&ca$libri=no$libri',
   success: function(msg){
     alert('wow'+msg);
   }
});

Nie działa. Czemu?


76
2018-02-18 21:44


pochodzenie


Widzę, że jesteś programistą PHP i widzę, że to zrobiłeś: ca$libri=no$libri. Po prostu sprawdzam, aby upewnić się tutaj ... czy na pewno przypadkowo nie próbujesz używać konstrukcji PHP, w których powinny być JS? Jeśli chcesz dołączyć wartość $libri Zmienna do tego ciągu, spróbuj tego: 'foo=bar&ca' + $libri + '=no' + $libri. - treeface
nono :) rozumiem wszystkie momenty generowania js przez php :) to nazwy zmiennych ajaxowych w APS. Tworzę parser, który parsuje jakąś witrynę z ajaxem. A teraz mam błąd. To jest zapytanie cross-domain. Muszę najpierw utworzyć zapytanie do mojego serwera :) - Mirgorod


Odpowiedzi:


Spróbuj tego:

$.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
2018-02-18 21:46



czy nie powinny to być dane: {foo: 'bar'}, bez apostrofu? - Marius Stănescu
@MariusStanescu, oba są równoważne równoważne składni javascript. - Darin Dimitrov
również całkiem pewne, że $ w ca $ libri jest idealnie w porządku - Michael Crook
Nie odpowiada na pytanie dotyczące wysyłania jako string :(, patrz poniżej odpowiedź. - Andrew
Działa to, ale to nie robi: foo: 'bar'. Spędziłem 2 dni bez powodu Nie dodałem znaków ciągów do obu stron !!! - eugen sunic


$.ajax({
   type: 'POST',    
url:'http://nakolesah.ru/',
data:'foo='+ bar+'&calibri='+ nolibri,
success: function(msg){
    alert('wow' + msg);
         }
     });

29
2017-12-15 10:53



dlatego przyszedłem tutaj, aby dowiedzieć się, jak wysłać dane $ .post jako ciąg znaków. Przyjęta odpowiedź wcale mi w tym nie pomaga. Dziękuję Ci. - chiliNUT
Zgadzam się, miałem również sytuację, w której wymagany był ciąg dla tworzonej przeze mnie struktury, dobra odpowiedź. W mojej sytuacji udało mi się wykonać tę pracę, umieszczając ciąg w zmiennej obok danych :, format mojego ciągu znaków to "? Var = value & var2 = value2" - Joseph Astrahan


Widzę, że nie rozumieli twojego pytania. Odpowiedź brzmi: dodaj "tradycyjny" parametr do twojego wywołania ajaxowego w ten sposób:

$.ajax({
  traditional: true,
  type: "POST",
  url: url,
  data: custom ,
  success: ok,
 dataType: "json"
});

Będzie działać z parametrami PASSED AS A STRING.


9
2017-11-18 17:04



Dzięki! To oszczędza mój dzień! - Dat TT
Dzięki wielkie. To działa! - farhany


Do podobnej aplikacji musiałem owinąć moje data obiekt z JSON.stringify() lubię to:

data: JSON.stringify({ 
  'foo': 'bar', 
  'ca$libri': 'no$libri'
}),

Interfejs API współpracował z klientem REST, ale nie mógł go uruchomić w przeglądarce Jquery ajax. stringify było rozwiązaniem.


8
2017-10-20 15:36



człowieku, to uratowało moje życie teraz. Dzięki! - Renoir Reis
Dlaczego musieliśmy to zrobić? - Renoir Reis
Nie jestem pewien, ale niektóre znaki w odpowiedzi nie mogą być traktowane jako ciągi, chyba że są wymuszone. - Dylan Valade


Nie jestem pewien, czy to wciąż aktualne ... tylko dla przyszłych czytelników. Jeśli naprawdę chcesz przekazać parametry jako część adresu URL, prawdopodobnie powinieneś użyć jQuery.param ().


4
2018-02-18 12:56





Nie jest to bezpośrednia odpowiedź na twoje pytanie. Ale jest to jedyna składnia, która zadziałała dla mnie -

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

A nazwa parametru jest zgodna z argumentem metody serwera


1
2018-06-24 20:06





Wystąpił problem z przekazywaniem wartości ciągu do parametrów ciągów w Ajaksie. Po tak wielu przeszukaniach, wymyśliłem niestandardowe rozwiązanie, jak poniżej.

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);
   },
});

Tutaj, bar i calibri są dwiema zmiennymi łańcuchowymi i możesz przekazać dowolną wartość ciągu do odpowiednich parametrów łańcucha w metodzie web.


-1
2017-09-23 06:54



Dlaczego nie jest głosowany? - Sohel Pathan