Chcę wysłać ciąg jako parametr ajax Post.
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?
Chcę wysłać ciąg jako parametr ajax Post.
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?
Odpowiedzi:
Spróbuj tak:
$.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);
}
});
Widzę, że nie zrozumieli twojego pytania. Odpowiedź brzmi: dodaj „tradycyjny” parametr do wywołania Ajax w następujący sposób:
$.ajax({
traditional: true,
type: "POST",
url: url,
data: custom ,
success: ok,
dataType: "json"
});
I będzie działać z parametrami PRZEKAZANO JAKO STRING.
W przypadku podobnej aplikacji musiałem owinąć mój data
obiekt w JSON.stringify()
ten sposób:
data: JSON.stringify({
'foo': 'bar',
'ca$libri': 'no$libri'
}),
Interfejs API działał z klientem REST, ale nie mógł go uruchomić z jquery ajax w przeglądarce. Stringify było rozwiązaniem.
Nie jestem pewien, czy jest to nadal aktualne… tylko dla przyszłych czytelników. Jeśli naprawdę chcesz przekazać swoje parametry jako część adresu URL, prawdopodobnie powinieneś użyć jQuery.param () .
Ja też stanąłem przed tym właśnie problemem. Ale mam rozwiązanie i zadziałało idealnie. Musiałem przekazać parametry, które są już produkowane przez funkcję javascript. Więc poniższy kod działa dla mnie. Użyłem ColdFusion jako zaplecza. Po prostu bezpośrednio użyłem parametrów jako zmiennej.
$.ajax({
url: "https://myexampleurl.com/myactionfile.cfm",
type: "POST",
data : {paramert1: variable1,parameter2: variable2},
success: function(data){
console.log(data);
} )};
Miałem problem z przekazywaniem wartości ciągu do parametrów ciągu w Ajax. Po tylu googlach 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 ciągu w metodzie sieciowej.
ca$libri=no$libri
. Sprawdzam tylko, żeby się upewnić ... czy na pewno nie próbujesz przypadkowo użyć konstrukcji PHP tam, gdzie powinny być konstrukcje JS? Jeśli chcesz dołączyć wartość$libri
zmiennej do tego łańcucha, spróbuj tego:'foo=bar&ca' + $libri + '=no' + $libri
.