一.vue+.net webapi 跨域问题
跨域访问报错:No Access-Control-Allow-Origin
终于找到报错的原因:
有一个输入框是是需要输入XML格式的字符串的,一有 < 就会报错(防止xss攻击)
解决办法
1.参数传过去再处理成XML格式
2.后端转发,因为后端是不存在跨域问题的
2.framework webapi的解决办法
① Nuget获取Microsoft.AspNetCore.Cors包
②添加引用System.Web.Http.Cors
③在WebApiConfig.cs中添加
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
二.vue+.net core跨域问题
1.解决办法:在appsetting.json->App->CorsOrigins添加允许跨域配置
startup的配置
代码
services.AddCors(
options => options.AddPolicy(
_defaultCorsPolicyName,
builder => builder
.WithOrigins(
// App:CorsOrigins in appsettings.json can contain more than one address separated by comma.
_appConfiguration["App:CorsOrigins"]
.Split(",", StringSplitOptions.RemoveEmptyEntries)
.Select(o => o.RemovePostFix("/"))
.ToArray()
)
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
)
);
2.或者
直接在StartUp.cs文件中添加下面允许所有前端访问的代码
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
app.UseCors("AllowAll");