如何为 AJAX 中的 POST 请求制定数据对象

How to formulate data object for POST request in AJAX

我有以下 curl POST 请求连接到 node.js API。

curl --request POST \
 --url http://localhost:3001/api/v1/login\
 --header 'Content-Type: application/json' \
 --data '{
    "username": "asdfsdfs",
    "email": "bla",
    "password": "dkasdjf333"
}'

但是,我努力制定匹配对象以在 AJAX 中为其传递 POST 请求,我从 API 服务器收到 500 错误,浏览器控制台显示: ''TypeError: 无法读取未定义的 属性 'replace'''。 我使用了 2 种类型的数据对象,如下所示。

//Version 1 which failed
 var loginData = {
 username: 'asdfsdfs',
 email: 'bla',
 password: 'dkasdjf333'
};
//version 2 which failed as well
var stringifiedJson = JSON.stringify({
 username: 'asdfsdfs',
 email: 'bla',
 password: 'dkasdjf333'
});


$.ajax({
 type: 'POST',
 url: 'http://localhost:3001/api/v1/login',
 data: loginData,
 processData: false,
 contentType: false,
 dataType: 'json'
 }).done(function(data) {
 console.log(data);
});

您必须将发帖请求的内容类型更新为 JSON:

$.ajax({
    ...,
    contentType: 'application/json; charset=utf-8'
});