我遇到了一个问题,Authorization
头没有被添加到iOS上的请求中,它在Android上工作。
一开始我以为是axios
,http客户端,但后来我改用fetch
来尝试,仍然不起作用。
在一个屏幕中有一个发送消息的处理程序:
const handleSendPress = async () => {
await postContact(textInput);
}
和请求功能:
export const postContact = async (message: string) => {
// await axiosInstance.post(`${API_URL}/contact`, {
// message,
// });
await fetch(`${API_URL}/contact`, {
method: 'POST',
body: JSON.stringify({
message,
}),
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
Authorization: 'Bearer [JWT TOKEN]',
},
});
};
其中我注解掉了axios
并硬编码了Authorization
头文件。
这在Android中有效,但在iOS中失败,服务器抱怨请求中没有Authorization
头。
我不明白,有什么想法吗?
1条答案
按热度按时间tpgth1q71#
原来iOS有一些保留的HTTP头,
Authorization
就是其中之一,https://developer.apple.com/documentation/foundation/nsurlrequest。关键词是可能,这就是为什么它通常会失败,但在某些情况下通过。
可能有一些方法可以配置这个,但我最终只是将我使用的头部更改为
X-Authorization
。