【问题标题】:getting problem performing a post request to an external API对外部 API 执行发布请求时遇到问题
【发布时间】:2019-11-19 19:32:06
【问题描述】:

我正在使用 axios 对外部 api 执行 get 和 post 请求, 我终于成功实现了获取请求(ssl证书的问题,我通过添加这个来避免它: httpsAgent: 新的 https.Agent({rejectUnauthorized: false }),

现在我想发布 api,

为了让请求在邮递员中工作,我输入了 标头内容类型:应用程序/json 在正文中:{}

like here

当尝试使用 google chrome 扩展时,为了使其正常工作,我在标题中没有放入任何内容,但在参数中,我选择了 customer : application/json 并放入了这个 {} 而不是默认选择 x-www -form-urlencoded;charset=UTF-8

chrome extention

在我的 javascript 应用程序中我尝试了这个

var url = https://10.11.31.100:9440/api/nutanix/v3/images/list;

axios({
    method:'post',
    httpsAgent: new https.Agent({ rejectUnauthorized: false }),
    url,
    auth: {
        username: '******',
        password: '********'
    },
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
    'X-Requested-With': 'XMLHttpRequest'
        },
params: {},
    data: {}

})
.then(function (response) {
    res.send(JSON.stringify(response.data));
    console.log(response);
})
.catch(function (error) {
    console.log(error);
});

我遇到了这个问题:

TypeError : UTF-8 不是函数

【问题讨论】:

  • TypeError : UTF-8 is not a function 是由.catch() 打印的? X-Requested-With': 'XMLHttpRequest 标头有什么意义?这段代码对我来说似乎没问题。
  • 是的,错误是由 catch 承诺处理的
  • 'X-Requested-With': 'XMLHttpRequest' 没有意义,我刚试过
  • 你不觉得axios支持node.js post请求有问题吗?
  • 我认为问题不在于 axios 本身。似乎在某处您正试图使用​​类似函数的字符串:const randomName = 'foobar' => randomName()

标签: node.js api post axios


【解决方案1】:

特别是关于 Nutanix v3 REST API - 这可能是因为上面的 POST 请求没有适当的 JSON 有效负载,即“数据”参数为空。

发送 Nutanix v3 API POST 请求时,特别是“列出”实体,您需要指定列出的实体的“种类”。在您的示例中,下面的 JSON 有效负载将起作用。

{"kind":"image"}

请看这里:https://nutanix.dev/reference/prism_central/v3/api/images/postimageslist

HTH。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    相关资源
    最近更新 更多