web-dev-qa-db-ja.com

jQuery Ajaxで生のボディを設定する方法は?

キー/値のペアのリストを送信する代わりに、POSTリクエストの本文としてJSON文字列を送信する必要があります。
私はこれをPOST jQueryの$ .ajax関数を使用して要求します。
どのように正しく設定しますか?

JSON文字列を言うとき、私は次のようなものを意味します:{action:'x',params:['a','b','c']}

これは、サーバー上のPHPでこのJSON文字列を使用する方法です。

var_dump(json_decode(file_get_contents('php://input')));

結果:

stdClass Object
    action = x
    params = Array
        (
    0 = a
    1 = b
    2 = c
        )
38

試してください:

$.ajax('url',{
    'data': JSON.stringify(yourJSONObject), //{action:'x',params:['a','b','c']}
    'type': 'POST',
    'processData': false,
    'contentType': 'application/json' //typically 'application/x-www-form-urlencoded', but the service you are calling may expect 'text/json'... check with the service to see what they expect as content-type in the HTTP header.
});

お役に立てれば、

ピート

92
pete

キーを指定しないと、キーなしでボディとして投稿されると思います

$.ajax({
data:JSON.stringify({action:'x',params:['a','b','c']})
});
4
Rafay