Как установить исходное тело в jQuery Ajax?
Вместо отправки списка пар ключ/значение мне нужно отправить строку JSON в качестве тела запроса POST.
Я делаю этот запрос POST с помощью функции jQuery $.ajax.
Как правильно установить его?
Когда я говорю строку JSON, я имею в виду что-то вроде: {action:'x',params:['a','b','c']}
.
Вот как я бы использовал эту строку JSON в PHP на сервере:
var_dump(json_decode(file_get_contents('php://input')));
Результаты в:
stdClass Object
action = x
params = Array
(
0 = a
1 = b
2 = c
)
Ответы
Ответ 1
Try:
$.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.
});
Надеюсь, что это поможет,
Пит
Ответ 2
если вы не укажете ключ, я думаю, что он опубликует как тело без ключа, например
$.ajax({
data:JSON.stringify({action:'x',params:['a','b','c']})
});