即使我使用允许服务器上的所有来源,请求的资源上也没有“Access-Control-Allow-Origin”标头
Posted
技术标签:
【中文标题】即使我使用允许服务器上的所有来源,请求的资源上也没有“Access-Control-Allow-Origin”标头【英文标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource even if I use allow all origins on server 【发布时间】:2019-07-26 16:48:10 【问题描述】:我正在尝试将表单数据发布到我的 REST API。即使我允许所有来源,我也会收到一个 cors 错误:
从 'https://api.mydomain.com/route' 访问 XMLHttpRequest 来源“https://subdomain.mydomain.com”已被 CORS 策略阻止: 请求中不存在“Access-Control-Allow-Origin”标头 资源。
这是我的快递服务器上的中间件:
app.use((req, res, next) =>
res.header("Access-Control-Allow-Origin", "*");
res.header(
"Access-Control-Allow-Methods",
"POST"
);
res.header("Access-Control-Allow-Headers", "X-Requested-With,content-type");
next();
);
这里有什么问题?
【问题讨论】:
app.use 写在 app.get('/') 之前? 是的,app.use 写在 app.post() 之前 【参考方案1】:尝试在服务器https://subdomain.mydomain.com 的响应中添加标头
这在 Asp.net Web API 中对我有用
Response.AddHeader("Access-Control-Allow-Origin", "*");
【讨论】:
以上是关于即使我使用允许服务器上的所有来源,请求的资源上也没有“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET WebApi 对 ValidateClientAuthentication 上的 OPTIONS 的 400 错误请求,即使在 context.Validated() 上也是如此
“cors header ‘access-control-allow-origin’ missing”拒绝请求,即使来源是允许的