zoukankan      html  css  js  c++  java
  • .net core关于跨域及Cookie的部分问题

     

    一、如何跨域

        1、情景描述

            目前有A站点和B站点。A站点有一个API接口为UserData接口,B站点希望可以通过ajax请求来获取A站点该接口数据。

        2、后端修改

            首先在ConfigureServices中配置、添加跨域策略

          

            策略新增好了之后又两种方法来配置该策略

          方法一:全局添加

          直接在Configure中用中间件的方法来注册跨域app.UseCors("自己的策略名称");该方法是让所有的接口都是可以跨域

          方法二:方法头添加

          在允许跨域的API上添加 [EnableCors("策略名称")],该方法可以灵活的允许要跨域的接口。

    二、跨域中Cookie的使用

        1、前端

            ajax请求中应该添加以下参数  

                                  

        2、后端

            .net core 后端关于Cookie的跨域需要注意的要点还是蛮多的:

          ①是否在CookiePolicyOptions中设置了SameSite为No

            

          ②AllowCredentials是否配置了(见本文第一段)

          ③设置Cookie到底是在Request中设置还是Response中设置(获取是在Request中获取,设置实在Response中设置)

    三、问题

        情景如下:

          有A、B两个站点。其中A站点有一个API如下:

          

         这个时候用户小明在Chorm浏览器中打开了A站点、B站点,并在A站点添加了Cookie    :CookieA,  在B站点添加了Cookie:  CookieB。

    小明在B站点用ajax访问了A站点的GetData接口之后结果如下:

        1、B站点并未添加新的名为“NewCookie”的Cookie。

        2、A站点新增了名为“NewCookie”的Cookie。

        3、程序Console.Write输出的是A站点的Cookie而不是B站点的Cookie

       疑问:

       接口明明是B站点请求的,为什么效果确实和A站点访问的效果一样?不应该是B站点新增Cookie,Console.Write  B站点的Cookie吗?

        

         更新:

        转载一篇关于asp.net 的跨域设置:https://www.cnblogs.com/smartstar/p/9771542.html 

  • 相关阅读:
    Zabbix监控系统系列之二 : 初始化配置
    docker中的zabbix 配置钉钉机器人
    sqldbx 绿色小巧的数据库查询管理工具
    Windows 10 自建Anki 私有云服务器
    Sqlserver内存管理:限制最大占用内存
    tfs强制撤销其他工作区挂起更改,删除工作区
    easyui的一些文档
    IIS下日志分析
    zookeeper-client
    Windbg程序调试系列-索引篇(转)
  • 原文地址:https://www.cnblogs.com/moshanghuakai/p/9713894.html
Copyright © 2011-2022 走看看