当前位置:  开发笔记 > 编程语言 > 正文

在本机浏览器提取中设置授权

如何解决《在本机浏览器提取中设置授权》经验,为你挑选了1个好方法。

我遇到一个问题,我似乎无法为获取请求设置标头,我想我错过了一些东西

var init = {
        method: 'GET',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
            'Authorization': 'Bearer myKey'
        }
    };
return fetch(url, init).then(function(response){...

当在网络选项卡中检查请求时,我没有看到标题被设置而是看到

Access-Control-Request-Headers:accept, authorization, content-type

当我期待看到

Authorization: Bearer myKey
Content-Type: application/json
Accept: application/json

我也尝试使用原生Headers(),零差异.

我在这里错过了什么吗?



1> ehiller..:

我有同样的问题,并在今晚进行了一些调查.问题是跨域资源共享/ CORS.使用Fetch,它是默认设置,它使事情变得更加复杂.

除非源和目标都相同,否则它是跨域请求,并且仅当请求到达支持CORS(跨源资源共享)的目标时才支持这些请求.如果没有,则不会通过.您通常会看到类似的错误No 'Access-Control-Allow-Origin' header is present on the requested resource

这就是为什么你不能在非CORS站点上执行Authorization标头的原因; 见#5和基本标题

https://fetch.spec.whatwg.org/#concept-headers-guard

https://fetch.spec.whatwg.org/#simple-header

FORBIDDEN HEADER NAMES:

https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_​​header_name

https://fetch.spec.whatwg.org/#forbidden-header-name

不幸的是,在尝试XMLHttpRequest路由之前,同样适用:这与XMLHttpRequest相同:

https://www.w3.org/TR/XMLHttpRequest/#the-open()-method

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

http://arunranga.com/examples/access-control/credentialedRequest.html

最后,您选择继续前进:1.JSONP 2.编写不在浏览器中的代理3.将CORS放在目标服务器上

这篇文章总结得很好

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有