我想知道json和data在node HTTP请求中的区别
var http = require('http');
let api = {
url: "https://someurl/api/ticket/create",
method: "POST",
headers:
{
"cache-control": "no-cache",
"Content-Type": "application/json",
"Accept": "application/json"
},
data:{
}
}
let apiTwo = {
url: "https://someurl/api/ticket/create",
method: "POST",
headers:
{
"cache-control": "no-cache",
"Content-Type": "application/json",
"Accept": "application/json"
},
json:{
}
}
http.request(api,function(err,resp,body){ // 400 for api and 200 for apiTwo
if(err){
console.log(err);
}
else{
console.log(resp);
console.log(body);
}
})当我在请求中使用data作为键来点击上面的接口时,我得到了400。当我使用json作为请求中的键时,我得到的是200。
简而言之,我的问题是这个json和data是在服务器上配置的吗?它们之间的区别是什么?在什么情况下,哪一个是首选的?
发布于 2019-11-04 14:37:36
我了解到,经过大量搜索后,data和json的API是分别在服务器端处理的。因此,当您在API请求中传入json或data时,请查看API文档,以便在json或data之间做出正确选择。
发布于 2019-10-11 19:25:55
当我们发出post请求时,主体应该是字符串格式。在您的第一个api请求中,主体是一个对象,而不是字符串,这就是为什么您会得到400
尝试下面传递数据,这里我使用json.strinfify对对象进行字符串化
let api = {
url: "https://someurl/api/ticket/create",
method: "POST",
headers:
{
"cache-control": "no-cache",
"Content-Type": "application/json",
"Accept": "application/json"
},
data:JSON.stringfy({})
}在第二个API调用中,请求中没有主体,因此服务器会将主体视为null,因此它接受请求。你会因为这个得到200分,但不是因为JSON
https://stackoverflow.com/questions/58340069
复制相似问题