当前位置: 首页 > news >正文

跨域 Cookie 共享

跨域请求经常遇到需要携带 cookie 的场景,为了确保跨域请求能够携带用户的认证信息或其他状态,浏览器提供了 withCredentials 这个属性。

如何在 Axios 中使用 withCredentials
为了在跨域请求中携带 cookie,需要在 Axios 配置中设置 withCredentials 为 true。

全局设置:

import axios from 'axios';// 配置 axios 默认选项
axios.defaults.withCredentials = true; // 启用跨域请求时携带 cookie// 或者在单独的请求中设置
axios.get('https://api.example.com/data', {withCredentials: true,  // 也可以在请求中单独设置
})
.then(response => {console.log(response.data);
})
.catch(error => {console.error(error);
});

局部设置:

import axios from 'axios';axios.get('https://api.example.com/data', {withCredentials: true,  // 确保跨域请求时携带 cookie
})
.then(response => {console.log('响应数据:', response.data);
})
.catch(error => {console.error('请求错误:', error);
});

后端:如何配置 CORS 以支持跨域请求携带 cookie:
前端配置好 withCredentials 后,后端需要确保响应头正确配置,以允许跨域请求携带 cookie。

  1. 设置 Access-Control-Allow-Origin
    Access-Control-Allow-Origin 头告诉浏览器哪些域是被允许跨域访问的。如果要支持跨域携带 cookie,这个头不能设置为 *,而必须指定一个明确的域。
Access-Control-Allow-Origin: https://www.example.com
  1. 设置 Access-Control-Allow-Credentials
    Access-Control-Allow-Credentials 头需要设置为 true,以允许浏览器在跨域请求中携带 cookie。
Access-Control-Allow-Credentials: true
  1. 设置 SameSite 和 Secure 属性
    为了确保 cookie 在跨域请求中能正常发送,服务器设置的 cookie 必须带上合适的 SameSite 和 Secure 属性:

SameSite=None:确保 cookie 在跨站请求时也会被发送。
Secure:要求 cookie 只能通过 HTTPS 协议发送。

Set-Cookie: user=JohnDoe; SameSite=None; Secure; domain=.example.com; path=/;
http://www.lryc.cn/news/502401.html

相关文章:

  • 【视频异常检测】Real-Time Anomaly Detection and Localization in Crowded Scenes 论文阅读
  • 设计模式12:抽象工厂模式
  • 论文学习——多种变化环境下基于多种群进化的动态约束多目标优化
  • Jenkins参数化构建详解(This project is parameterized)
  • Cerebras 推出 CePO,填补推理与规划能力的关键空白
  • 广东省食品销售中高级题库及答案
  • JAVA基础-深入理解Java内存模型(一)-- 重排序与先行发生原则(happens-before)
  • 【Lambda】java之lambda表达式stream流式编程操作集合
  • 家具购物小程序+php
  • 【GIS教程】使用GDAL-Python将tif转为COG并在ArcGIS Js前端加载-附完整代码
  • VB.net进行CAD二次开发(二)与cad交互
  • 【NLP 11、Adam优化器】
  • 51单片机应用开发(进阶)---串口接收字符命令
  • redis 怎么样删除list
  • 【数据结构——内排序】快速排序(头歌实践教学平台习题)【合集】
  • npm或yarn包配置地址源
  • STUN服务器用于内网NAT的方案
  • Linux 简单命令总结
  • Vue.js组件开发:提升你的前端工程能力
  • 使用 Pandas 读取 JSON 数据的五种常见结构解析
  • C++鼠标轨迹算法(鼠标轨迹模拟真人移动)
  • Go mysql驱动源码分析
  • GNSS误差源及差分定位
  • pg数据类型
  • 【java】finalize方法
  • HNU_多传感器(专选)_作业4(构建单层感知器实现分类)
  • 以太网链路详情
  • vue3 setup语法,子组件点击一个元素打印了这个元素的下标id,怎么传递给父组件,让父组件去使用
  • 《Keras3 minist 手写数字AI模型训练22秒精度达到:0.97》
  • 【.net core】【sqlsugar】大数据写入配置(需要版本5.0.45)