Why when sending data over AJAX, do you have to JSON.stringify() your objects? Why when sending data over AJAX, do you have to JSON.stringify() your objects? ajax ajax

Why when sending data over AJAX, do you have to JSON.stringify() your objects?


when sending json via ajax do you need to turn it into a string to send it?

If it isn't a string, then it isn't JSON in the first place.

JSON is a text based data format. HTTP is a text based communications protocol.

JSON stands for javascript object notation

JSON is based on the syntax for JavaScript literals. A JavaScript object is not JSON.


AJAX is all about HTTP requests, which are basically "text" requests to a server. That's the main reason why you have to stringify your object: That way it's turned into text that can "travel" over HTTP.


When sending data to a web server, the data has to be a string.

That's why we are using JSON.stringify() function to convert data to string and send it via XHR request to the server.

        // Creating a XHR object         let xhr = new XMLHttpRequest();        let url = "submit.php";         // open a connection         xhr.open("POST", url, true);         // Set the request header i.e. which type of content you are sending         xhr.setRequestHeader("Content-Type", "application/json");         // Converting JSON data to string         var data = JSON.stringify({ "name": name.value, "email": email.value });         // Sending data with the request         xhr.send(data);