我正在使用axios向本地环境上的discords API发出HTTP GET请求。
我正在使用以下代码:
axios.get('https://discord.com/api/channels/735303230694621228', {
withCredentials: true,
headers: {
Authorization: 'Bot ' + botToken,
},
}).then((data) => {
res = data.response
})
Bot是频道ID:735303230694621228的所有者,并且拥有所有正确的权限。
实际结果:
预检请求(OPTIONS)给出200的响应以及所有正确的标头。
进行预检后,将会发生GET请求,并给我以下响应:
403 Forbidden
浏览器也会给出CORS错误,但是我很确定这是由于403响应所致,因为403并未提供所有正确的CORS标头。
预期结果:
Status 200 OK
我尝试使用具有相同Bot令牌的Postman来https://discord.com/api/channels/735303230694621228,它给我200的预期响应。
有谁知道为什么我在本地环境中将axios与浏览器一起使用时为什么得到403,而邮递员却收到200的响应?
不和谐的响应以403
用于一些 User-Agent
S上一些API资源。
要对此进行测试,请发送一个邮递员请求,并将您的User-Agent
标头设置为与浏览器匹配的值,例如User-Agent: Mozilla/5.0
遗憾的是,即使您在的配置中定义了User-Agent
标头,浏览器也会覆盖标头中的标头。axios.get()
.get()
以上就是Postman(User-Agent: PostmanRuntime/7.0.0
)收到200
响应但浏览器(User-Agent: Mozilla/5.0
)收到响应的原因403
。
值得注意的是,Discord API文档并未对此进行解释(截至2020年8月)https://discord.com/developers/docs/resources/channel#get-channel
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句