NodeJS中的Axios发布请求

时间:2020-06-05 11:29:06

标签: node.js express axios

我在POSTMAN中有一个API调用,我试图使用Axios在nodeJS项目中复制它,但是结果与POSTMAN的结果不同。

在POSTMAN中,呼叫如下所示: Postman API Call

在body元素内部,我拥有:模型和值属性,并且Authorization类型为Bearer。

我得到一个响应结果作为数组。

现在,我尝试使用axios进行相同的操作,但出现错误:

代码

axios.defaults.baseURL = 'http://XXXXXXXXXXXXXXX:8069/api';

axios({
  method: 'POST',
  url: '/create/res.users', 
  data: {
    models: 'res.users',
    values: "{ 'login': 'john@gmail.com', 'name':'john', 'email':'john@gmail.com', 'password': '123123123' }"
  },
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Authorization': 'Bearer ' + accessToken
  },
})
.then(function (response) {

  console.log("Register", response);
  res.status(200).send({
    message: response.data
  });

})
.catch(function (error) {

  console.log("Error", error.response.data);
  res.status(error.response.status).send({
    message: error.response.data
  });

});

错误

{
    "message": {
        "name": "odoo.exceptions.RedirectWarning",
        "message": "You cannot create a new user from here.\n To create new user please go to configuration panel.\n74\nGo to the configuration panel",
        "arguments": [
            "You cannot create a new user from here.\n To create new user please go to configuration panel.",
            74,
            "Go to the configuration panel"
        ],
        "exception_type": "error",
        "code": 500,
        "description": "Restful API Error"
    }
}

1 个答案:

答案 0 :(得分:1)

默认情况下,axios将JavaScript对象序列化为JSON。要改为以application / x-www-form-urlencoded格式发送数据,此文档可以为您提供帮助:

https://github.com/axios/axios#using-applicationx-www-form-urlencoded-format