Javascript npm request.post每次都会给出错误,但同一个post可用于JQuery

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.

我正试图从服务器端向api发出一个从ExpressJS到api的post请求

这是它的代码

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'}}根据