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了
  • 相关阅读:
    lua 源码阅读 5.3.5 笔记
    lua 源码阅读 1.1 -> 2.1
    lua 1.0 源码分析 -- 总结
    lua 1.0 源码分析 -- 2 内存回收
    lua 1.0 源码分析 -- 1 lua 的虚拟指令
    protoc-c 阅读笔记
    protoc-c 安装记录
    转前端开发中常用工具函数总结
    sql 设计规范
    web.config文件详解[转]
  • 原文地址:https://www.cnblogs.com/PiaoYu/p/11386230.html
Copyright © 2011-2022 走看看