解决axios请求

时间:2017-07-23 19:33:47

标签: javascript axios request-headers

我现在已经遇到过这个问题了几次,我觉得有人在那里知道一种更好的方法来解决api调用问题,而不是我 - 特别是请求标题。

通常当我需要通过请求标头传递我的api令牌时,我一直在摸索传递密钥的确切格式(似乎没有通用格式来执行此操作)。

例如,我目前正在尝试访问vultr v1 api。文档给出了一个需要传递API-Key: SOMEKEY的卷曲示例,然而,我的第一次尝试很少有用,那我只是在摸索......他们是否想要我的键在一个键/值对或一个字符串中阵列?我是否使用es6对象(没有引号)。

这就是我的意思:

// one method 
const opts = {
  headers: {
    API-Key: 'SOMEKEY'
  }
}
// another
const opts = {
  'headers': {
    'API-Key': 'SOMEKEY'
  }
}
// another
const opts = {
  headers: [
    'API-Key: SOMEKEY'
  ]
}

axios.get(url, opts).then(res => console.log(res.data))

这是正确的方法吗?在vultr给出的卷曲示例中,它显示: curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/iso/list

我在网络检查员中也看到请求标题显示我正在传递我的API密钥但我仍然收到403(错误的密钥错误) network inspector

我已经仔细检查了我的密钥的有效性,这不是问题。 我的问题是: 如何找到标题的正确格式?针对此类问题是否有更好的故障排除方法?任何帮助将不胜感激。谢谢你

更新: 事实证明他们已经拥有基于IP的访问控制。直到现在我才注意到它。因此,他们阻止了我的要求。然而,我的问题仍然存在。找出正确格式的好方法?格式是否正确?

1 个答案:

答案 0 :(得分:0)

一种方法是在创建axios对象时设置Headers,如下所示:

- hosts: build.url.com
  sudo: yes
  roles:
    - { role: postgresql, tags: postgresql }
    - { role: ruby, tags: ruby }
    - { role: build, tags: build }

 axios = axios.create({headers: {'API-Key': 'EXAMPLE'}});
 axios.get(url, opts).then(res => console.log(res.data))