IIS 仅在 ASP.NET 3.1 上传图像时'Access-Control-Allow-Origin'标头



我目前有一个VueJS前端服务器,在那里我使用axios向我的ASP.NET 3.1后端API发出ajax请求。在Visual studio中的调试或发布中启动项目时,我的表单可以正常工作。在IIS上发布我的web API时,只有才会出现问题。我有一个CORS策略,基本上允许在我的Web API的启动。

启动#ConfigureServices下的Cors策略

services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
});

在启动#配置下启用我的策略

app.UseCors("CorsPolicy");

这是我的axios请求:

let data = new FormData()
if(this.file !== null)
data.append("Icons", this.file.file, this.file.file.name)
data.append('Id', this.itemId)
// append other data...
axios.defaults.headers.common['Authorization'] = 'Bearer ' + this.$store.state.token
axios.post(this.$store.state.api + 'items/edit', data).then(() => {
console.log('success')
}).catch(err => {
console.log(err)
})

当在FormData中没有提供图像时,请求成功。然而,当发送图像时,它会返回一个错误:

Access to XMLHttpRequest at 'https://exemple.com:5001/api/items/edit' from origin 'http://exemple.com has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

只有当我的应用程序发布在IIS(6.2(上时才会出现此错误

使用Lex Li和Brando Zhang的注释,我将CORS配置添加到Web API项目的web.config中。

CORS配置:

<cors enabled="true">
<add origin="*" >
<allowHeaders allowAllRequestedHeaders="true" />
</add>
</cors>

相关内容

最新更新