如何解决如何修复由于 CORS 问题而被阻止的重定向?
这是我的设置:
在端口 4200 上运行本地 Angular 应用程序
在端口 4300 上使用 Deno 运行 API。
我有一个用例,在某个 api 端点 http://localhost:4300/foo
处的客户端调用需要将用户重定向到前端的另一部分,例如 http://localhost:4200/bar#baz
。
目前这失败并出现以下错误:
Access to XMLHttpRequest at 'http://localhost:4200/bar#baz' (redirected from 'http://localhost:4300/foo') from origin 'http://localhost:4200' has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.
我尝试在 API 上禁用/允许 cors:
ctx.response.headers.set('Acces-Control-Allow-Origin','*');
ctx.response.headers.set('Acces-Control-Allow-Headers','*');
ctx.response.headers.set('Acces-Control-Allow-Methods','*');
ctx.response.headers.set('Access-Control-Allow-Credentials','true');
但这不起作用。
关于如何解决这个问题的任何想法?无需设置代理或安装浏览器插件。
谢谢!
解决方法
见MDN:
值“*
”仅作为没有凭据的请求(没有 HTTP cookie 或 HTTP 身份验证信息的请求)的特殊通配符值。在带有凭据的请求中,它被视为没有特殊语义的文字标头名称“*
”。请注意,Authorization 标头不能使用通配符,并且始终需要明确列出。
您正在使用凭据发出请求,因此您不能使用 *
作为通配符,并且必须明确说明您正在使用哪些标头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。