JSON代表javascript对象表示法(因为我确定你知道),所以为什么,当通过ajax发送json时你需要将它变成一个字符串来发送它吗?它只是一种格式化的东西,还是什么?
这可能属于另一个地方,如果是这样,请告诉我,我会关闭它并移动它。
显然,我不是在寻找意见,我想知道实际答案。
为了确保我清楚,我理解JSON.stringify()的作用以及它的对应JSON.parse()。我只是想知道,为什么需要使用stringify。
谢谢!
答案 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);