has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.
时间: 2023-11-22 15:51:02 浏览: 179
corsyusha:简单快速的代理,可在针对现有API进行原型设计时绕过CORS问题,而不必担心CORS
CORS(跨源资源共享)是一种安全机制,用于限制从一个源加载的资源如何与来自另一个源的资源进行交互。当浏览器检测到请求的源、协议或端口与当前文档不同时,就会发出跨域请求。在这种情况下,服务器必须在响应中添加特定的CORS头部,以允许浏览器访问资源。如果请求头部中包含未经允许的字段,服务器将返回一个CORS错误,其中包含“has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.”的错误消息。
解决这个问题的方法是在服务器端添加允许请求头部的字段。在引用中提供了一个PHP的例子,其中添加了三个头部:Access-Control-Allow-Origin、Access-Control-Allow-Headers和Access-Control-Request-Headers。Access-Control-Allow-Origin头部指定允许访问资源的源,Access-Control-Allow-Headers头部指定允许的请求头部字段,Access-Control-Request-Headers头部指定浏览器在实际请求中发送的请求头部字段。
如果你使用的是axios或ajax进行请求,可以在请求头部中添加Authorization字段,如下所示:
```javascript
axios({
method: 'get',
url: 'http://example.com',
headers: {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/json'
}
})
```
在这个例子中,我们添加了Authorization和Content-Type字段到请求头部中。如果服务器允许这些字段,请求将被成功处理。
阅读全文