api 调用到达服务时,授权标头被删除"/>
当 api 调用到达服务时,授权标头被删除
有从UI到Backend服务的xhr调用,
在请求中我们清楚地看到
Authorization
header 有 jwt
但是当 api 调用收到后端服务时,没有 Authorization 标头。
const xhr = new XMLHttpRequest(); xhr.open('PUT', url, true);
xhr.setRequestHeader('Authorization', `Bearer ${jwtToken}`);
xhr.setRequestHeader(
'Cache-Control',
'private, no-cache, no-store, must-revalidate'
);
xhr.setRequestHeader('Pragma', 'no-cache');
xhr.setRequestHeader('Expires', '0');
xhr.send();`
在 API 中,当我们尝试验证 Authorization 标头时,它不可用。
间歇性发生。无法追根溯源
回答如下:如果“url”与提供网络应用程序的来源不同,您需要在发送前添加此代码:
xhr.withCredentials = true;
如果还是不行,那可能是服务器的问题。
如果你使用的服务器恰好是Apache:
默认情况下,它会去除 Authorization 标头,因此您必须将其添加到 .htaccess 文件中。
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
更多推荐
当 api 调用到达服务时,授权标头被删除
发布评论