Question

What's the proper way to use JSON.stringify() on nested objects? I'm getting a bad request from a api call that expects a JSON string:

testData = {"credentials": {"user": "test@email.com", "password": "testpassword", "country": "us"}};

when I view the postDasta:

"{"credentials": {"user": "test@email.com", "password": "testpassword", "country": "us"}}";

$.ajax({
    ...
    data: JSON.stringify(testData),
    ...
});

Thanks,

J

Était-ce utile?

La solution

The answer I was looking for was: You need to use JSON.stringify to first serialize your object to JSON, and then specify the content-type so your server understands it's JSON.

So, contentType and stringify are necessary if the server is expecting JSON.

Autres conseils

If this is jQuery (it looks like it is), the data parameter accepts an object and performs the necessary serialization to pass it as an associative array to the server. You don't stringify if before passing it.

The data parameter for jQuery's .ajax() method does not take a json string as value. It either expects a query-formed string(test=value&otherstuff=othervalue), or an object, as noted in the linked documentation above.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top