前端为什么发请求没有携带cookie?

这篇具有很好参考价值的文章主要介绍了前端为什么发请求没有携带cookie?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概念

在前端发送请求时,如果想要携带 cookie,通常只能携带存储在与请求域名相同路径的 cookie。这是由浏览器的同源策略所决定的。

同源策略要求请求的域名、协议和端口都必须一致,否则浏览器会限制跨域请求的权限。当浏览器发送跨域请求时,默认情况下不会自动携带 cookie,只有在以下两种情况下才会携带:

  1. 目标域名设置了允许携带 cookie 的响应头(Access-Control-Allow-Credentials),并且请求的 origin 域名也在目标域名的白名单中。

  2. 请求通过简单请求(GET、POST、HEAD)发送,并且请求的目标域名与当前页面的域名相同。

因此,如果想要在前端发送跨域请求时携带 cookie,需要确保以上条件被满足,并且在服务器端进行相应的配置。

总结就是:想携带cookie一定不能跨域!

二、案例

1)项目背景

我这个项目在开发环境下是有登录页面的,但是在生产环境上没有,该项目页面最后是通过iframe嵌入到其余项目的,因此在开发环境下登录时,需要走proxy跨域;在生产环境下,不需要

2)问题

首先设置在登录成功后,把后端返回的cookie储存下来

 document.cookie = `auth_token=${res.data.token}`;

1、开发环境

由于在开发环境下的登录接口,采用的是vite.config.ts中配置的proxy跨域,因此我储存的cookie是在我电脑的域下,此时如果我发起请求获取接口,这个接口地址一定要是http://localhost:9021/ 这个域名才可以,也否则是不会携带cookie的

proxy: {
      
        '/data-platform-app': {
          target: 'https://os.baidu.com',
          changeOrigin: true,
          
          rewrite: path => path.replace('^/data-platform-app', 'data-platform-app'),
        },

             }

请求没带cookie,Vue,JS,前端

请求没带cookie,Vue,JS,前端

2、生产环境

请求没带cookie,Vue,JS,前端

请求没带cookie,Vue,JS,前端

 3)解决措施

那问题来了,如果我想在开发环境请求接口的话,由于cookie是储存在本地的域名下,请求接口是不会携带cookie的,这个怎么解决呢?

那就只能设置一下逻辑:dev环境,走proxy代理;其他环境,请求接口域名直接是https://os.mingyatest.com/busines-auth-app/ 即可文章来源地址https://www.toymoban.com/news/detail-735013.html

'/busines-auth-app':{
          target: 'https://os.baidu.com',
          changeOrigin:true,
          rewrite:path=>path.replace('/busines-auth-app', '/busines-auth-app')
                  },

到了这里,关于前端为什么发请求没有携带cookie?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity为什么单击动画文件后,没有动画的预览窗口?

    单击一个动画文件之后,没有出现动画的预览窗口(如图0.1)。 动画预览窗口只是被隐藏了,向上拖拉右下角的双横线,即可打开动画预览窗口。(如图0.2) 如图0.3,动画预览窗口显现了。

    2024年02月12日
    浏览(25)
  • 面试题:为什么要合并 HTTP 请求?有什么好处?

    为什么要实现batch call? - 减少网络中的传输损耗 - 如何减少的? - 通过合并HTTP请求 - 合并HTTP请求是如何减少网络损耗的? 本文将解决这个问题。一起看看单个请求携载大量信息和多个请求携载小量信息对于整个时间的影响。 可以保持长连接,但是每个不同的请求之间,clien

    2024年01月19日
    浏览(20)
  • 为什么数据库要允许没有主键的表存在

    在数据库设计中,主键是一个关键概念,用于唯一标识数据库表中的每一行数据。然而,有时候数据库允许没有主键的表存在的情况,这可能会引起一些争议和疑问。本文将探讨为什么数据库允许没有主键的表以及相关的考虑因素。 主键在数据库中具有以下作用: 唯一标识

    2024年02月08日
    浏览(29)
  • 录屏为什么没有声音?两个步骤检测你的电脑设置

    很多小伙伴在录制完电脑屏幕后,会发现一个问题:录制的电脑屏幕文件只有画面,没有声音。 录屏为什么没有声音? 怎样才能录制有声音的视频?导致录屏没有声音的原因有很多。 下面小编就教您两个步骤检测您的电脑设置,然后手把手教您如何录制带声音的录屏文件,

    2024年02月11日
    浏览(25)
  • 为什么pdf拆分出几页之后大小几乎没有变化

    PDF 文件的大小在拆分出几页之后几乎没有变化可能有几个原因: 图像压缩 : 如果 PDF 文件中包含图像,而这些图像已经被压缩过,拆分后的页面依然会保留这些压缩设置,因此文件大小可能不会显著变化。 文本和矢量图形 : PDF 文件中的文本和矢量图形通常不占用太多空间,

    2024年04月14日
    浏览(23)
  • Type-C口充电器头为什么没有电压输出?

    近些年开始流行Type-C口的充电器,有18W、65W、100W等等,功率越来越来大,充电速度也越来越来快了,电压也由5V开始慢慢增加到9V、12V、15V、20V等。 但是,为什么C口的充电器默认没有电压输出呢?  比如华为65W的Type-C充电器,默认输出电压为0V,可以增加一个XSP06芯片即可输

    2024年02月12日
    浏览(81)
  • 为什么你工作很努力却没有晋升?分析晋升的关键点!

    见字如面,我是军哥! 昨天有一位二线大厂的程序员读者和我吐槽,说马上公司一波人晋升,可是晋升名额并么有他,但是他在这家公司已经干了三年了,工作也很努力,996 更是家常便饭,难道是大环境的影响?其实不全是! 为什么领导不给提名晋升的机会,他非常想不通

    2024年02月06日
    浏览(33)
  • 数据库——Redis 没有使用多线程?为什么不使用多线程?

    虽然说 Redis 是单线程模型,但是, 实际上, Redis 在 4.0 之后的版本中就已经加入了对多线程的支持。 不过,Redis 4.0 增加的多线程主要是针对一些大键值对的删除操作的命令,使用这些命令就会使用主处理之外的其他线程来“异步处理”。 大体上来说, Redis 6.0 之前主要还是

    2024年02月11日
    浏览(19)
  • 为什么我的电脑没有Hyper-V选项?Windows11

    “我有一台Win11电脑,想要在上面运行Hyper-V虚拟机,所以我按照网上的教程打开了Windows功能窗口,但是我找遍了其中的选项,发现貌似我的电脑没有Hyper-V这个选项,这是什么情况?有没有办法能够让我的Win11开启Hyper-V功能?提前感谢各位大佬。” 一般来说,在Windows功能选项

    2024年02月05日
    浏览(75)
  • 为什么POST请求经常发送两次?

    大多数初级前端程序员,在通过浏览器F12的调试工具调试网络请求时,可能都会有一个发现,在进行POST请求时,明明代码里只请求了一次,为什么network里发送了两次呢,难道我代码出bug了?带着疑问点开第一个请求才发现,原来第一个是OPTIONS类型的请求,第二个才是我代码

    2024年02月08日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包