我有一个非常简单的HTTP调用:
fetch('http://127.0.0.1:5500/v1/homes/', {
method: "GET",
mode: "cors",
credentials: "same-origin",
headers: {
Authorization: "TEST"
}})
.then(function(response) {
console.log(response);
});
Run Code Online (Sandbox Code Playgroud)
但是,当我查看Google Chrome DevTools的“网络”标签时,OPTIONS请求中没有“授权”标头。这将导致服务器使用“ 401未经授权”进行答复。
浏览器的curl等同于请求:
curl 'http://127.0.0.1:5500/v1/homes/' \
-X OPTIONS -H 'Access-Control-Request-Method: GET' \
-H 'Origin: http://localhost:8100'
-H 'Referer: http://localhost:8100/'
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
-H 'Access-Control-Request-Headers: authorization'
--compressed
Run Code Online (Sandbox Code Playgroud)
我在客户端做错了吗?还是浏览器不发送OPTIONS请求中的Authorization标头很普遍,因此,我需要以一种响应OPTIONS调用的方式更改服务器而无需Authorization标头?
| 归档时间: |
|
| 查看次数: |
931 次 |
| 最近记录: |