我试图从express js向api、从serverside发出一个post请求。
这是它的代码
request.post({
url: $url,
crossDomain: true,
data: {id : '392', sid: 'abc'}
}, function(error, response, body){
console.log(response.statusCode);
console.log(body);
});这总是返回一个响应statusCode 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请求模块时的响应和状态代码不同。
我哪里出问题了?
发布于 2017-06-06 13:19:01
那么这个密码呢?
我似乎也没有在request.js文档中找到对“request.js”选项的任何引用。
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)
}
);发布于 2017-06-06 13:23:56
request和$.ajax在被调用时没有相同的选项。可以使用传递的options对象中的body属性发送请求正文。此外,还有方便的布尔json将Content-Type: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)
})https://stackoverflow.com/questions/44390845
复制相似问题