401 API身份验证使用POST方法失败

问题描述 投票:0回答:2

我正在实现基于POST方法的API。现在,我已经尝试了axios以及fetch(承诺)方法,但是我一直遇到“ 401身份验证失败”的错误。

  • 为了进行测试,我将要发送到this.state的数据值定义为默认值。
  • apiKeyuserId在React.Component之外定义为var。
  • 不是使用内置的[[btoa函数,而是使用从顶部导入的npm目录中的一个。
这是React组件代码:-

constructor(props) { super(props); this.state = { day: 1, month: 2, year: 2019, hours: 12, minutes: 59, tzone: 5.5, lat: 19.22, lon: 25.2 }; } componentDidMount() { const options = { headers: { "Authorization": "Basic" + btoa(userId+":"+apiKey), "Content-Type":'application/json' } }; const url = `https://json.astrologyapi.com/v1/current_vdasha` const data = this.state fetch(url, { method: 'POST', body: JSON.stringify(data), headers: options }) .then(res => res.json()) .catch(error => console.error('error ---', error.message)) .then(response => console.log('Success:', response)); }

感谢您的帮助。谢谢。
javascript reactjs api post xmlhttprequest
2个回答
1
投票
在请求的标题部分中,尝试在“基本”之后添加空格,该外观应如下所示:'''

const options = { headers: { "Authorization": "Basic " + btoa(userId+":"+apiKey), "Content-Type":'application/json' } };

'''身份验证标头首先需要授权的类型,然后是空格,然后是api键

0
投票
[将标头传递给fetch函数时,将其传递到另一个对象内。

在获取功能中,尝试将headers: options更改为headers: options.headers

© www.soinside.com 2019 - 2024. All rights reserved.