为什么在通过AJAX发送数据时,您是否需要JSON.stringify()您的对象?

时间:2015-09-14 17:30:33

标签: javascript json ajax

JSON代表javascript对象表示法(因为我确定你知道),所以为什么,当通过ajax发送json时你需要将它变成一个字符串来发送它吗?它只是一种格式化的东西,还是什么?

这可能属于另一个地方,如果是这样,请告诉我,我会关闭它并移动它。

显然,我不是在寻找意见,我想知道实际答案。

为了确保我清楚,我理解JSON.stringify()的作用以及它的对应JSON.parse()。我只是想知道,为什么需要使用stringify。

谢谢!

3 个答案:

答案 0 :(得分:12)

  

通过ajax发送json时,你需要把它变成一个字符串来发送吗?

如果它不是字符串,那么它首先不是JSON。

JSON是一种基于文本的数据格式。 HTTP是基于文本的通信协议。

  

JSON代表javascript对象表示法

JSON基于JavaScript文字的语法。 JavaScript对象不是JSON。

答案 1 :(得分:2)

AJAX是关于HTTP请求的全部内容,基本上是" text"请求到服务器。这就是为什么你必须对你的对象进行字符串化的主要原因:这样它就变成了可以"旅行"通过HTTP。

答案 2 :(得分:0)

将数据发送到Web服务器时,数据必须为字符串。

这就是为什么我们使用JSON.stringify()函数将数据转换为字符串并通过XHR请求将其发送到服务器的原因。

        // 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);