Ajax Postパラメーターとして文字列を送信したい。
次のコード:
$.ajax({
type: "POST",
url: "http://nakolesah.ru/",
data: 'foo=bar&ca$libri=no$libri',
success: function(msg){
alert('wow'+msg);
}
});
動かない。どうして?
このようにしてみてください:
$.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);
}
});
彼らはあなたの質問を理解していないようです。答えは、次のようにajax呼び出しに「従来の」パラメーターを追加します。
$.ajax({
traditional: true,
type: "POST",
url: url,
data: custom ,
success: ok,
dataType: "json"
});
そして、文字列として渡されたパラメータで動作します。
同様のアプリケーションの場合、次のようにdata
オブジェクトをJSON.stringify()
でラップする必要がありました。
data: JSON.stringify({
'foo': 'bar',
'ca$libri': 'no$libri'
}),
APIはRESTクライアントで動作していましたが、ブラウザーでjquery ajaxを使用して機能させることができませんでした。 stringifyが解決策でした。
これがまだ実際であるかどうかはわかりません。将来の読者のためだけに。 URLの一部としてパラメーターを渡すことが本当に必要な場合は、おそらく jQuery.param() を使用する必要があります。
あなたの質問への直接的な答えではありません。しかし、私のために働いていた唯一の構文は次のとおりです-
data: '{"winNumber": "' + win + '"}',
そして、パラメータ名はサーバーメソッドの引数と一致します
私もこの問題に直面しています。しかし、私は解決策を手に入れ、それは完全に機能しました。 javascript関数によって既に生成されているパラメーターを渡す必要がありました。だから、以下のコードは私のために働いています。バックエンドにColdFusionを使用しました。パラメーターを変数として直接使用しました。
$.ajax({
url: "https://myexampleurl.com/myactionfile.cfm",
type: "POST",
data : {paramert1: variable1,parameter2: variable2},
success: function(data){
console.log(data);
} )};
Ajaxの文字列パラメーターに文字列値を渡す際に問題に直面していました。たくさんのグーグルをした後、私は以下のようなカスタムソリューションを思いつきました。
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);
},
});
ここで、barとcalibriは2つの文字列変数であり、任意の文字列値をWebメソッドの各文字列パラメーターに渡すことができます。