eggjs踩坑之路 跨域cookie篇

2024-06-05 05:58
文章标签 之路 cookie 跨域 eggjs

本文主要是介绍eggjs踩坑之路 跨域cookie篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接前文,本地搭建的一个vue应用,地址为127.0.0.1:8080。 后端代码运行在7001端口。之前已经完成了基本的通信功能,在中间件中设置了Access-Control-Allow-Origin为* ,可以实现跨域访问和jsonp。本次的功能是让前后端共同实现用户登陆信息记录的功能。 设计思路:

1.前端发起第一次get请求,请求主页内容。此时提示用户登陆,用户登陆使用post发送相应数据。后端收到数据并记录用户ID,设置到cookie中,返回给浏览器。浏览器记录此cookie 2.下次用户再请求主页时,浏览器会自动携带用户的cookie数据,此时后端直接返回该用户已登陆,给出相应返回码,前端收到后跳转界面

遇到的问题: 1跨域的cookie不能像正常cookie一样返回,浏览器会自动屏蔽,需要引入egg-cors插件,设置

credentials 跨域带脚本时该值设为true才能正常获得cookie 第二个值origin,有资料说只能设置成具体ip如127.0.0.1:8080 不能为*(通配符),原因不明 而且值得注意的是,localhost在很多时候不能和127.0.0.1公用,例如这种情况,直接访问localhost而不是ip会返回失败,建议本地测试时全部使用127.0.0.1。相应的前端在发送post请求时需要携带withCredentials为true标志允许跨站点脚本

2.前端第二次get请求时,抓包可以看到上送了cookie值,但是egg中读到undefined,这点在egg官网里没有提到,那就是如果你set cookie的时候附加了参数,比如设置httponly,那么get的时候需要传同样的参数才能返回结果

最后:直到现在请求的时候一直Provisional headers are shown

查到几个文档大都表示是浏览器拦截,或者本地缓存或者跨域访问。因为收到成功结果,所以排除拦截,经测试 关闭浏览器重启服务的第一笔就会这样返回 所以也不是本地缓存。 暂不理解为什么会这样显示,如果有大神知道其中原因,希望不吝赐教
作者:nightmareT
链接:https://juejin.cn/post/6844903897941671949
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这篇关于eggjs踩坑之路 跨域cookie篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032254

相关文章

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

proxy代理解决vue中跨域问题

vue.config.js module.exports = {...// webpack-dev-server 相关配置devServer: {host: '0.0.0.0',port: port,open: true,proxy: {'/api': {target: `https://vfadmin.insistence.tech/prod-api`,changeOrigin: true,p

JavaScript中document.cookie

“某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie。”—— MSIE 帮助。一般来说,Cookies 是 CGI 或类似,比 HTML 高级的文件、程序等创建的,但是 javascript 也提供了对 Cookies 的很全面的访问权利。       每个 Cookie 都是这样的:<cookie名>=<值>   <cookie名>的限制与 javasc

flask-login 生成 cookie,session

flask-login 生成 cookie,session Flask-Login login_user() 显示来自 Set-Cookie 标头的加密 cookie # 模拟一个用户类class User(UserMixin):def __init__(self, id):self.id = id@app.route('/login')def login():# 模拟用户登录过程user

宝塔部署Vue项目解决跨域问题

一、前言 使用宝塔面板部署前端后端项目相比用命令行进行部署要简单许多,宝塔的可视化操作对那些对Linux不熟悉的人很友好。使用宝塔部署SpringBoot后端项目和Vue前端项目的方法如下: 1、视频教程 2、文字教程1 3、文字教程2 以上的教程完全可以按照步骤一步一步进行部署,但是部署过程中,会遇到很多问题,例如前端的跨域问题,本文在遇到上述问题并解决后,特此记录一下。 二、解决跨域 我

Xiaojie雷达之路---雷达间干扰(二)置零法对干扰抑制

Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本篇文章主要是介绍一下时域置零对雷达间干扰抑制的效果,一起来看看吧!!! 文章目录 前言正文原理性介绍代码 前言 在上一篇文章中介绍了BPM对雷达间干扰抑制的方法,而本篇文章是采用时域置零的方法进行雷达间干扰抑制 效果图: 视频如下: 雷达间干扰 正文

Nginx跨域运行案例:云台控制http请求,通过 http server 代理转发功能,实现跨域运行。(基于大华摄像头WEB无插件开发包)

文章目录 引言I 跨域运行案例开发资源测试/生产环境,Nginx代理转发,实现跨域运行本机开发运行 II nginx的location指令Nginx配置中, 获取自定义请求header头Nginx 配置中,获取URL参数 引言 背景:全景监控 需求:感知站点由于云台相关操作为 http 请求,http 请求受浏览器跨域限制,不能直接访问,因此需要进行 http 的代理,实

【Http 每日一问,访问服务端的鉴权Token放在header还是cookie更合适?】

结论先行: token静态的,不变的,放在header里面。 典型场景 ,每次访问时需要带个静态token请求服务端,向服务端表明是谁请求,此时token也可以认为是个固定的access-key。token动态的,会失效,放在cookie里面。 典型场景,业务登录态token,存在有效期的,过一段时间可能会失效。 下面具体展开下。 在选择将鉴权 Token 放在 HTTP Header 还是

【解决bug之路】npm install node-sass(^4.14.1)连环报错解决!!!(Windows)

有关node-sass的深入分析可参考:又报gyp ERR!为什么有那么多人被node-sass 坑过? 主要有如下三方面错误,请自查: 1.node,npm版本需与node-sass版本匹配,像node-sass(^4.14.1)就得node 14.x版本才可以,node 16不行 gyp ERR! build error15 gyp ERR! stack Error: `