zoukankan      html  css  js  c++  java
  • .net core3.1 如何设置跨域、SignalR如何设置跨域

    .net core3.1 如何设置跨域

    最近在做服务端的消息推送,因为业务比较简单、并发很低,所以选择使用SignaIR来做服务端推送。

    于是上网找了一下微软的文档,发现和之前的版本有些许改变

    //不支持同时设置这四个全允许
                app.UseCors(t=> {
                    t.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials();
                });

    然后就是位置一定要放对,

                app.UseRouting();
                // 设置跨域
                app.UseCors(MyAllowSpecificOrigins);
                
                app.UseHttpsRedirection();

    一定要放在 UseRouting() 和 UseHttpsRedirection() 之间,否则会失效。

    SignalR如何设置跨域 

    本来以为设置了全局跨域之后就可以了,但是在使用过程中,发现当服务端和客户端不在用一个域的时候,会连接不上,根据报错信息,知道原因是跨域的问题,但是在start.cs文件中已经设置过全局跨域了,找了很久找不到原因,网上的所有资料都是设置全局跨域即可,但是实际操作不得行。

    然后发现SignaIR的跨域需要单独配置,

                app.UseEndpoints(endpoints =>
                {
                    //推送服务
                    endpoints.MapHub<PushHub>("/PushHubs").RequireCors(t=>t.WithOrigins(new string[]{ "null"}).AllowAnyMethod().AllowAnyHeader().AllowCredentials());
                });

    这样的话就可以通过域是null的请求来连接服务器了,对应的允许的域可以自己配置。

  • 相关阅读:
    C/C++中的堆、栈和队列
    网卡工作状态检测
    Delphi 2007 的midas程序注册问题
    使用SQL语句备份与恢复数据库
    C/C++中的堆、栈和队列
    Delphi 2007 的midas程序注册问题
    如何使用VirtualBox的共享文件夹(转)
    如何使用VirtualBox的共享文件夹(转)
    C语言struct的使用
    printf常用格式
  • 原文地址:https://www.cnblogs.com/yuchenghao/p/12578344.html
Copyright © 2011-2022 走看看