master
bicijinlian 4 years ago
parent 33033c54c0
commit ff9ec59e2c

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>iFrame Tab Demo</title> <title>CORS跨域 客户端</title>
<script type="text/javascript" src="Scripts/jquery-1.10.2.js"></script> <script type="text/javascript" src="Scripts/jquery-1.10.2.js"></script>
<script type="text/javascript" src="Scripts/jquery.cookie.js"></script> <script type="text/javascript" src="Scripts/jquery.cookie.js"></script>
<script> <script>
@ -48,9 +48,9 @@
<div id="MenuLinks"> <div id="MenuLinks">
<ul> <ul>
<li method="GET" dataType="json" contentType="application/x-www-form-urlencoded" url="http://localhost:5000/api/Test/Ping">简单API</li> <li method="GET" dataType="json" contentType="application/x-www-form-urlencoded" url="http://localhost:5000/api/Test/Ping">简单API</li>
<li method="GET" dataType="json" contentType="application/x-www-form-urlencoded" url="https://www.hao123.com">好123</li> <li method="GET" dataType="json" contentType="application/x-www-form-urlencoded" url="http://localhost:5000/api/Cors/Ping">全局跨域策略</li>
<li method="GET" dataType="json" contentType="application/x-www-form-urlencoded" url="https://www.360.com">360</li> <li method="GET" dataType="json" contentType="application/x-www-form-urlencoded" url="http://localhost:5000/api/Cors/NoCors">不允许跨域</li>
<li method="GET" dataType="json" contentType="application/x-www-form-urlencoded" url="https://www.qq.com">QQ</li> <li method="GET" dataType="json" contentType="application/x-www-form-urlencoded" url="http://localhost:5000/api/Cors/HasCors">单独明确可以跨域</li>
</ul> </ul>
</div> </div>
<pre id="ContentBox"> <pre id="ContentBox">

@ -38,6 +38,7 @@ namespace CorsServer.WebApi31.Controllers
[HttpGet] [HttpGet]
[HttpOptions] [HttpOptions]
[DisableCors]
public IActionResult NoCors() public IActionResult NoCors()
{ {
var data = new { Code = 0, Messge = "不允许跨域" }; var data = new { Code = 0, Messge = "不允许跨域" };

@ -21,7 +21,8 @@ namespace CorsServer.WebApi31
Host.CreateDefaultBuilder(args) Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => .ConfigureWebHostDefaults(webBuilder =>
{ {
webBuilder.UseStartup<Startup>(); webBuilder
.UseStartup<Startup>();
}); });
} }
} }

@ -25,13 +25,15 @@ namespace CorsServer.WebApi31
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
{ {
services.AddCors(setup => #region Config
{ services.Configure<CorsOption>();
setup.AddPolicy(CorsName, build => #endregion
{ #region CORS
build.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().WithExposedHeaders("x-custom-error"); AddCors_1(services);
}); //AddCors_2(services);
}); //AddCors_3(services);
//AddCors_4(services);
#endregion
services.AddControllers(); services.AddControllers();
} }
@ -56,5 +58,60 @@ namespace CorsServer.WebApi31
endpoints.MapControllers(); endpoints.MapControllers();
}); });
} }
private IServiceCollection AddCors_1(IServiceCollection services)
{
services.AddCors(setup =>
{
setup.AddPolicy(CorsName, build =>
{
build
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.WithExposedHeaders("x-custom-error");
});
});
return services;
}
private IServiceCollection AddCors_2(IServiceCollection services)
{
services.AddCors(setup =>
{
setup.AddPolicy(CorsName, build =>
{
build.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().WithExposedHeaders("x-custom-error");
});
});
return services;
}
private IServiceCollection AddCors_3(IServiceCollection services)
{
services.AddCors(setup =>
{
setup.AddPolicy(CorsName, build =>
{
build.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().WithExposedHeaders("x-custom-error");
});
});
return services;
}
private IServiceCollection AddCors_4(IServiceCollection services)
{
services.AddCors(setup =>
{
setup.AddPolicy(CorsName, build =>
{
build.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().WithExposedHeaders("x-custom-error");
});
});
return services;
}
} }
} }

@ -1,5 +1,12 @@
{ {
"urls": "http://*:5000", "urls": "http://*:5000",
"CORS": {
"PolicyName": "",
"Origin": ["*"],
"Method": [ "*" ],
"Header": [ "*" ],
"ExposedHeaders": []
},
"Logging": { "Logging": {
"LogLevel": { "LogLevel": {
"Default": "Information", "Default": "Information",

Loading…
Cancel
Save