zoukankan      html  css  js  c++  java
  • webapi跨域,服务器上使用session

    最近的项目,要求前后端分离,手机客户端使用的是微信小程序,服务器接口,使用webapi接口分离,pc端后台管理也分离。

    这里要说的是,后台pc管理端和服务器的API之间,使用session验证是否登录;后台客户端管理使用的是vue全家桶+axios

    1.首先需要开启服务器端的session,需要在Global.asax文件中添加一下代码:

      public override void Init()
            {
                this.AuthenticateRequest += WebApiApplication_AuthenticateRequest;
                base.Init();
            }
    
            void WebApiApplication_AuthenticateRequest(object sender, EventArgs e)
            {
                //启用 webapi 支持session 会话
                HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
            }

    需要重新Init方法

    2.需要开通跨域,这里使用的是,Cors插件跨域,在NuGet中下载Microsoft.AspNet.WebApi.Core

    然后在App_Start--->WebApiConfig.cs下添加如下代码:

     var geduCors = new EnableCorsAttribute(origins: "http://localhost:8080", headers: "*", methods: "*")
                {
                    SupportsCredentials = true//设置跨域时,跨域带cookie,或者session
                };
                config.EnableCors(geduCors);

    注意:要使用session,配置中的origins属性不能使用*,一定要写上你要跨域的域名。

    3.在vue的main.js配置中,设置axios的属性:

    axios.defaults.withCredentials =true;
    若是用ajax原理也是一样的,要不然服务器端,session是获取不到的,OK,剩下的就可以在服务器端使用session了
  • 相关阅读:
    sharepoint 2007 升级到 sharepoint 2013
    sharepoint 2010中启用RBS及所遇问题
    sharepoint 读取文件夹中所有的数据
    脚本设置ip&自动获取ip
    window 2008 r2 每隔一小时都要重启一次解决办法
    sharepoint 弹出框
    sharepoint powershell 根据报错的GUID查询错误
    java中switch选择结构
    mysql查看表字段相关信息
    mac系统 -postman发送http请求
  • 原文地址:https://www.cnblogs.com/PiaoYu/p/11386230.html
Copyright © 2011-2022 走看看