Javascript npm request.post每次都会给出错误,但同一个post可用于JQuery
我正试图从服务器端向api发出一个从ExpressJS到api的post请求 这是它的代码Javascript npm request.post每次都会给出错误,但同一个post可用于JQuery,javascript,jquery,node.js,post,http-post,Javascript,Jquery,Node.js,Post,Http Post,我正试图从服务器端向api发出一个从ExpressJS到api的post请求 这是它的代码 request.post({ url: $url, crossDomain: true, data: {id : '392', sid: 'abc'} }, function(error, response, body){ console.
request.post({
url: $url,
crossDomain: true,
data: {id : '392', sid: 'abc'}
}, function(error, response, body){
console.log(response.statusCode);
console.log(body);
});
这始终返回一个响应状态代码500
另一方面,我使用Jquery从服务器端尝试了相同的post请求
这是它的代码
$.ajax({
url: $url,
crossDomain:true,
data: {
id : $id,
sid: $sid
},
type: "POST",
// dataType: "json",
//on success
success: function(response){
//do something after something is received data
},
//on error
error: function(jqXHR, exception){
//bad request
console.log(jqXHR.status);
console.log(exception);
}
});
$url和所有其他变量在这两种情况下都是相同的。尽管如此,我用Jquery做的帖子得到了正确的响应和状态代码200,这与我用npm请求模块做的帖子不同
我哪里出错了?那么这段代码呢 在request.js文档中,我似乎也没有找到任何对“crossDomain”选项的引用
var request = require('request');
request.post(
{
headers: {'content-type':'application/json'},
url: $url,
form: {id : '392', sid: 'abc'}
},
function(error, response, body){
console.log(response.statusCode);
console.log(body)
}
);
和$.ajax在被调用时不具有相同的属性。您可以使用传递的options对象中的body属性发送请求正文。此外,还可以方便地使用布尔json将内容类型:application/json头添加到请求中,将请求体序列化为json,并将响应体自动解析为json
const request = require('request')
request({
url: $url,
method: 'POST',
body: {id: '392', sid: 'abc'},
json: true
}, (err, res, body) => {
if (err) {
// handle error
console.log(err)
return
}
// handle response
console.log(response)
})
我认为调用post请求的格式是request.post'http://service.com/api“,{form:{key:'value'}}根据