为什么在通过AJAX发送数据时,必须使用JSON.stringify()来处理对象?

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

本文关键字:stringify JSON 对象 处理 AJAX 数据 为什么      更新时间:2023-09-26

JSON代表javascript对象符号(我相信你知道),那么为什么,当通过ajax发送JSON时,你需要把它变成一个字符串来发送呢?这仅仅是一个格式问题吗?

这可能属于另一个地方,如果是,让我知道,我会关闭它并移动它。

显然,我不是在征求意见,我想知道实际的答案。

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

谢谢!

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

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

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

JSON代表javascript对象符号

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

AJAX是关于HTTP请求的,它基本上是对服务器的"文本"请求。这就是为什么必须对对象进行字符串化的主要原因:这样就可以将其转换为可以通过HTTP"传输"的文本。

当向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);