我有以下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'' '。 我使用了两种类型的数据对象,如下所示。
//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);
});
答案 0 :(得分:1)
您必须将请求请求的contentType更新为JSON:
$.ajax({
...,
contentType: 'application/json; charset=utf-8'
});