我正在尝试将请求从一个本地主机端口发送到另一个本地主机端口。我 在前端 使用 angularjs,在后端 使用 node 。
由于这是 CORS 请求,因此在node.js中,我正在使用
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');
在angular.js服务文件中,我正在使用
return {
getValues: $resource(endpoint + '/admin/getvalues', null, {
'get': {
method: 'GET',
headers:{'Authorization':'Bearer'+' '+ $localStorage.token}
}
}),
}
我收到以下错误
请求标头字段在飞行前响应中,Access-Control-Allow-Headers不允许授权。
请帮忙!
您还必须在允许的标题中添加选项。浏览器先发送预检请求,然后再发送原始请求。见下文
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH,OPTIONS');
从源https://developer.mozilla.org/en-
US/docs/Web/HTTP/Methods/OPTIONS
在CORS中,使用OPTIONS方法发送预检请求,以便服务器可以响应是否可以使用这些参数发送请求。的
Access-Control-Request- Method
报头通知的服务器作为预检请求的一部分被发送的实际请求时,它将被与POST请求方法发送。的Access-Control-Request- Headers
报头通知服务器被发送的实际请求时,它将被与发送X-PINGOTHER
和Content- Type
自定义首部。服务器现在有机会确定在这种情况下是否希望接受请求。
已编辑
您可以通过使用npmjs.com/package/cors npm package
来避免这种手动配置。我也使用了这种方法,它既简单又清晰。
问题内容: 我正在尝试从跨域制作登录页面,但无法解决问题,错误是: XMLHttpRequest无法加载http://localhost/testing/resp.php。在飞行前响应中,Access- Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Headers。 我的Javascript代码是: http://localhost/test
我正试图将请求从一个本地主机端口发送到另一个本地主机端口。我在前端使用angularjs,在后端使用node。
问题内容: 我正在尝试使用发布请求将文件发送到服务器,但是在发送请求时会导致错误: Access-Control-Allow-Headers不允许请求标头字段Content-Type。 所以我搜索了错误并添加了标题: 然后我得到错误: Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin 所以我用谷歌搜索,唯一能找到的类似
我正在尝试将文件发送到我的服务器,并发送post请求,但当它发送时会导致错误: Access-Control-Allow-Headers不允许请求标头字段Content-Type。 所以我搜索了这个错误并添加了标题: 然后我得到错误:
请求头字段access-control-allow-headers本身在飞行前响应中是不允许的
此外,客户机url http://localhost:8081被添加到KeeyCloak中的Web Origins中。不确定还缺少什么来让它工作。