【发布时间】:2020-11-02 11:52:53
【问题描述】:
iis服务器上有两个应用,一个是和前端反应,一个是后端。 web api 作为子域工作。例如,api.mydomain.com。
当我从前端发送 Web api 请求时,出现以下错误。
在“https://api.mydomain.com/api/auth/login”访问 XMLHttpRequest 来自原点“https://.mydomain.com”已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
services.AddCors(options =>
{
options.AddPolicy("AllowOrigin",
builder => builder.WithOrigins("https://*.mydomain.com").AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials());
});
app.UseCors("AllowOrigin");
我是否需要更改 IIS 设置,我应该在哪里更改?
解决方案:
- 首先,将 web config 中的所有 cors 设置设置为“*”。
- 其次,从 plesk 面板关闭 modsecurity。
【问题讨论】:
-
没人能帮忙吗?我解决不了问题
-
我认为问题在于您的网络 API 不知道如何为预检请求返回 20 倍响应。因此,您需要修改代码以允许 OPTION 返回正确的响应。
-
@JokiesDing 我发现了问题,问题是plesk面板中的modsecurity被打开了。
标签: c# asp.net-core iis cors asp.net-core-webapi