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

前端 未结 3 2084
栀梦
栀梦 2020-12-06 18:44

JSON stands for javascript object notation (as I\'m sure you\'re aware), so why, when sending json via ajax do you need to turn it into a string to send it? Is it simply a f

相关标签:
3条回答
  • 2020-12-06 19:06

    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.

    0 讨论(0)
  • 2020-12-06 19:09

    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);  
    
    0 讨论(0)
  • 2020-12-06 19:29

    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.

    0 讨论(0)
提交回复
热议问题