升级到 .NET Core 2.2 后出现 CORS 问题
Posted
技术标签:
【中文标题】升级到 .NET Core 2.2 后出现 CORS 问题【英文标题】:CORS issues after upgrading to .NET Core 2.2 【发布时间】:2019-06-14 20:09:09 【问题描述】:我有一个可以很好地处理 CORS 的 .NET Core 2.1 应用程序。但是升级到 2.2 后我遇到了问题:
从源“https://cabinet.xxxx”访问“https://content.xxxx/user/avatar”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头出现在请求的资源上。
响应标头:(这可能是 IIS 的问题吗?)
连接:关闭
内容长度:315
内容类型:文本/html; charset=us-ascii
日期:格林威治标准时间 2019 年 1 月 22 日星期二 15:08:26
服务器:Microsoft-HTTPAPI/2.0
我尝试了在这里可以找到的所有组合(在 MVC 之前和之后启用 CORS,在 Configure 方法中添加和删除 UseCors),但没有任何效果。
public IServiceProvider ConfigureServices(IServiceCollection services)
...
services.AddCors(options =>
options.AddPolicy("MyPolicy",
builder => builder.WithOrigins("https://cabinet.xxxxxx")
.AllowAnyMethod()
.AllowCredentials()
.AllowAnyHeader());
);
services.AddMvc();
...
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
app.UseHsts();
//app.UseHttpsRedirection();
app.UseCors("MyPolicy");
app.UseMvc();
app.UseDefaultFiles();
app.UseStaticFiles();
方法是
[HttpPost]
[EnableCors("MyPolicy")]
[Route("user/avatar")]
[Authorize]
public async Task Method(IFormFile file) ...
我错过了什么吗?我不想降级回 2.1。
【问题讨论】:
截图解释了问题和如何解决它。 CORS 已启用并抱怨尝试访问第三方 URL。显示可以调用content....../user/avatar
的标头不见了。
好吧,我不太明白。我试过'AllowAnyOrigin()'但它也没有帮助。还是您的意思是我应该将呼叫更改为“内容”服务器?我只做后端,我应该改变调用并添加特定的标题吗?
顺便说一句,发布错误消息本身,而不是错误消息的图片。谷歌搜索标题名称和.net core
将返回相关答案。现在我必须手动输入才能搜索示例
您应该检查如何正确配置它,而不是尝试关闭 CORS。您正在寻找一种将content...
URL 放入该标头的方法。而且我仍然需要手动输入才能搜索样本
毫无疑问这是 ASP.NET Core 2.2 的一个严重问题。解决方法在某些阶段有效,而在其他阶段无效;部署中的大问题。一场噩梦
【参考方案1】:
显然 IIS 配置存在问题。将网站移至另一个端口会有所帮助。
【讨论】:
以上是关于升级到 .NET Core 2.2 后出现 CORS 问题的主要内容,如果未能解决你的问题,请参考以下文章
升级到 DotNet Core 2.2 后 Azure 应用服务不运行