Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set the raw body in jQuery Ajax?

Instead of sending a list of key/value pairs, I need to send a JSON string as the body of the POST request.
I make this POST request using jQuery's $.ajax function.
How do I set it correctly?

When I say JSON string, I mean something like: {action:'x',params:['a','b','c']} .

This is how I would use this JSON string in PHP on the server:

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

Results in:

stdClass Object     action = x     params = Array         (     0 = a     1 = b     2 = c         ) 
like image 840
Itay Moav -Malimovka Avatar asked Jan 31 '12 17:01

Itay Moav -Malimovka


1 Answers

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

Hope this helps,

Pete

like image 55
pete Avatar answered Oct 11 '22 01:10

pete