【发布时间】:2019-01-11 08:05:23
【问题描述】:
我有以下 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: Cannot read property 'replace' of undefined' '。 我使用了 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);
});
【问题讨论】:
-
你怎么知道你的控制台错误与你刚刚粘贴的那段代码有关?
-
为什么要设置 processData 和 contentType 为 false,你的 contentType 应该是 application/json 吗?
-
意思是传递你的
loginData,而你可能应该传递你的stringifiedJson? -
我尝试了两种不同的方法。一个是原样的 Json 对象,一个是与 JSON.stringify 一起使用的 JSON 对象。控制台错误与此有关,因为它正在逐步进行单元测试,并且它是唯一的错误来源。
标签: jquery json ajax api stringify