当前位置: 首页 > 知识库问答 >
问题:

CORS错误:执行前响应中的Access-Control-Allow-Headers不允许请求头字段授权

商松
2023-03-14

我正试图将请求从一个本地主机端口发送到另一个本地主机端口。我在前端使用angularjs,在后端使用node。

res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
return {
    getValues: $resource(endpoint + '/admin/getvalues', null, {
        'get': {
             method: 'GET',
             headers:{'Authorization':'Bearer'+' '+ $localStorage.token}
             }
     }),
}

共有1个答案

万俟招
2023-03-14

您还必须在允许的标题中添加选项。浏览器在发送原始请求之前发送飞行前请求。见下文

 res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH,OPTIONS');

来源https://developer.mozilla.org/en-美国/docs/web/http/methods/options

在CORS中,使用OPTIONS方法发送飞行前请求,这样服务器就可以响应是否可以使用这些参数发送请求。access-control-request-method标头作为预飞行请求的一部分通知服务器,当发送实际请求时,将使用POST request方法发送该请求。access-control-request-headers标头通知服务器,当发送实际请求时,将使用X-PingotherContent-type定义标头发送请求。服务器现在有机会确定它是否希望在这些情况下接受请求。

编辑的

您可以通过使用npmjs.com/package/cors npm包来避免这种手动配置。

 类似资料: