前后端彻底分离后,特别是前端和API放在不同服务器不同域名指向时,就存在了跨域的可能,Core默认是没有设置开启跨域,需要手动添加
1、默认提示不可跨域
2、设置跨域
- 代码
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(); //添加跨域组件
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//使用跨域组件
app.UseCors(builder => builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
}
}
3、部署到IIS,需要查看config是否有如下
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST,OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
4、如果以上步骤依然报错
IIS > 设置HTTPS响应标头
5、浏览器CORS请求
如提示如下错误,可能是web.config配置问题
总结:也有可能是只更新了部分dll,可重新备份线上再重新发布