zoukankan      html  css  js  c++  java
  • Vue+NodeJS的跨域请求Session不同

    前端:vue+NodeJS

    后端:springboot

    前端通过vue-resource插件发送ajax请求

    问题描述:

    请求的时候后台接收到的session每次sessionid都不一样

    如何解决:

    在前端请求的位置加上withCredentials: true

    this.$http.post(this.global.basePath + this.url, requestParam, {emulateJSON: true,withCredentials: true})
    .then(function (res) {
    //成功
    }, function () {
    //请求失败
    })

    后台controller加上Spring注解@CrossOrigin来支持跨域
    import org.springframework.web.bind.annotation.CrossOrigin;

    @CrossOrigin
    public class CrossController{

    }

    XMLHttpRequest.withCredentials  属性是一个Boolean类型,它指示了是否该使用类似cookies,authorization headers(头部授权)或者TLS客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用withCredentials属性是无效的。

    此外,这个指示也会被用做响应中cookies 被忽视的标示。默认值是false。

    如果在发送来自其他域的XMLHttpRequest请求之前,未设置withCredentials 为true,那么就不能为它自己的域设置cookie值。而通过设置withCredentials 为true获得的第三方cookies,将会依旧享受同源策略,因此不能被通过document.cookie或者从头部相应请求的脚本等访问。

  • 相关阅读:
    【Springboot】Springboot整合Ehcache
    时间戳转化正常的时间格式
    申请抖音企业认证流程
    js与原生进行交互
    vim 高亮
    shell 关于路径查询显示pwd
    shell 关于字符切割 cut
    linux ubuntu 关于vim得一些基本命令
    shell 在终端中打开另一个终端执行命令
    shell 获取时间
  • 原文地址:https://www.cnblogs.com/tkey/p/9802630.html
Copyright © 2011-2022 走看看