如何为 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'
});
我有以下 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'
});