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 

  • 相关阅读:
    51 Nod 1086 多重背包问题(单调队列优化)
    51 Nod 1086 多重背包问题(二进制优化)
    51 Nod 1085 01背包问题
    poj 2559 Largest Rectangle(单调栈)
    51 Nod 1089 最长回文子串(Manacher算法)
    51 Nod N的阶乘的长度 (斯特林近似)
    51 Nod 1134 最长递增子序列(经典问题回顾)
    51 Nod 1020 逆序排列
    PCA-主成分分析(Principal components analysis)
    Python中cPickle
  • 原文地址:https://www.cnblogs.com/moshanghuakai/p/9713894.html
Copyright © 2011-2022 走看看