web-dev-qa-db-ja.com

jQueryはPOSTパラメーターとして文字列を送信します

Ajax Postパラメーターとして文字列を送信したい。

次のコード:

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

動かない。どうして?

86
Mirgorod

このようにしてみてください:

$.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);
    }
});
167
Darin Dimitrov
$.ajax({
    type: 'POST',    
    url:'http://nakolesah.ru/',
    data:'foo='+ bar+'&calibri='+ nolibri,
    success: function(msg){
        alert('wow' + msg);
    }
});
35
Chakavak Behzad

彼らはあなたの質問を理解していないようです。答えは、次のようにajax呼び出しに「従来の」パラメーターを追加します。

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

そして、文字列として渡されたパラメータで動作します。

12
vitaly goji

同様のアプリケーションの場合、次のようにdataオブジェクトをJSON.stringify()でラップする必要がありました。

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

APIはRESTクライアントで動作していましたが、ブラウザーでjquery ajaxを使用して機能させることができませんでした。 stringifyが解決策でした。

9
Dylan Valade

これがまだ実際であるかどうかはわかりません。将来の読者のためだけに。 URLの一部としてパラメーターを渡すことが本当に必要な場合は、おそらく jQuery.param() を使用する必要があります。

4
egnarts-ms

あなたの質問への直接的な答えではありません。しかし、私のために働いていた唯一の構文は次のとおりです-

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

そして、パラメータ名はサーバーメソッドの引数と一致します

1
Lijo

私もこの問題に直面しています。しかし、私は解決策を手に入れ、それは完全に機能しました。 javascript関数によって既に生成されているパラメーターを渡す必要がありました。だから、以下のコードは私のために働いています。バックエンドにColdFusionを使用しました。パラメーターを変数として直接使用しました。

                    $.ajax({
                    url: "https://myexampleurl.com/myactionfile.cfm",
                    type: "POST",
                    data : {paramert1: variable1,parameter2: variable2},
                    success: function(data){
                        console.log(data);                              
                    } )};
0
CodeLover

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

ここで、barcalibriは2つの文字列変数であり、任意の文字列値をWebメソッドの各文字列パラメーターに渡すことができます。

0
Sohel Pathan