zoukankan      html  css  js  c++  java
  • Asp.Net Core跨域配置

    在没有设置跨域配置的时候,Ajax请求时会报以下错误

    已拦截跨源请求:同源策略禁止读取位于 http://localhost:5000/Home/gettime 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。

    ASP.net Core跨域有两种,全局和区域

    全局跨域

    打开Startup.cs文件,在ConfigureServices方法中添加以下代码

    1.配置跨域处理,允许所有来源:

    services.AddCors(options => { options.AddPolicy("stdio", p => p.AllowAnyOrigin()); });
            <h4>2.允许一个或多个具体来源:</h4>
            <blockquote>
                <code>
                    services.AddCors(options => {
                    options.AddPolicy("stdio"/*跨域的名称*/, policy => {
                    policy.WithOrigins("http://localhost:5000", "http://127.0.0.1")
                    .AllowAnyOrigin();
                    });
                    });
                </code>
            </blockquote>
            <p>以上两种选择一种即可</p>
            <p>Configure方法中添加以下代码即可</p>
            <blockquote>
                <code>
                    app.UseCors("stdio");//必须位于UseMVC之前
                </code>
            </blockquote>
    
        </div>
        <div>
            <h2>局部跨域</h2>
            <p>1.ConfigureServices方法不变,删除Configure中的app.UseCors()方法</p>
            <p>2.在Controller顶部或者Action方法顶部加上[EnableCors(“自定义的跨域策略名称")]</p>
            <blockquote>
                <div class=" text-danger">
                    <div>[EnableCors("stdio")]</div>
                    <div>public class HomeController:Controller //放在Controller</div>
                </div>
                <br>
                <div class=" text-danger">
                    <div>[EnableCors("stdio")]</div>
                    <div>public IActionResult GetTime() //放在方法上</div>
                </div>
            </blockquote>
    
        </div>
    </div>
    
  • 相关阅读:
    选择排序
    插入排序
    冒泡排序
    linux 常用命令全集
    Boost简介
    postgresql命令行
    Ncurses 命令行图形库
    rsync ssh文件同步
    BusyBox参考
    screen命令
  • 原文地址:https://www.cnblogs.com/zzr-stdio/p/10673737.html
Copyright © 2011-2022 走看看