Asp.Net Core跨域配置
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.css" rel="stylesheet">
</head>
<body>
<div class="container">
<p>在没有设置跨域配置的时候,Ajax请求时会报以下错误</p>
<blockquote>
<code>已拦截跨源请求:同源策略禁止读取位于 http://localhost:5000/Home/gettime 的远程资源。(原因:CORS 头缺少
'Access-Control-Allow-Origin')。
</code>
</blockquote>
<p>ASP.net Core跨域有两种,全局和区域</p>
<div>
<h2>全局跨域</h2>
<p>打开Startup.cs文件,在ConfigureServices方法中添加以下代码</p>
<h4>1.配置跨域处理,允许所有来源:</h4>
<blockquote>
<code>
services.AddCors(options => {
options.AddPolicy("stdio", p => p.AllowAnyOrigin());
});
</code>
</blockquote>
</body>
2.允许一个或多个具体来源:
services.AddCors(options => {
options.AddPolicy("stdio"/跨域的名称/, policy => {
policy.WithOrigins("http://localhost:5000", "http://127.0.0.1")
.AllowAnyOrigin();
});
});
以上两种选择一种即可
Configure方法中添加以下代码即可
app.UseCors("stdio");//必须位于UseMVC之前
局部跨域
1.ConfigureServices方法不变,删除Configure中的app.UseCors()方法
2.在Controller顶部或者Action方法顶部加上[EnableCors(“自定义的跨域策略名称")]
[EnableCors("stdio")]
public class HomeController:Controller //放在Controller
[EnableCors("stdio")]
public IActionResult GetTime() //放在方法上
</body>

浙公网安备 33010602011771号