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

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Java 中的跨域问题解决方法

《Java中的跨域问题解决方法》跨域问题本质上是浏览器的一种安全机制,与Java本身无关,但Java后端开发者需要理解其来源以便正确解决,下面给大家介绍Java中的跨域问题解决方法,感兴趣的朋友一起... 目录1、Java 中跨域问题的来源1.1. 浏览器同源策略(Same-Origin Policy)1.

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

Spring MVC跨域问题及解决

《SpringMVC跨域问题及解决》:本文主要介绍SpringMVC跨域问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录跨域问题不同的域同源策略解决方法1.CORS2.jsONP3.局部解决方案4.全局解决方法总结跨域问题不同的域协议、域名、端口

关于Nginx跨域问题及解决方案(CORS)

《关于Nginx跨域问题及解决方案(CORS)》文章主要介绍了跨域资源共享(CORS)机制及其在现代Web开发中的重要性,通过Nginx,可以简单地解决跨域问题,适合新手学习和应用,文章详细讲解了CO... 目录一、概述二、什么是 CORS?三、常见的跨域场景四、Nginx 如何解决 CORS 问题?五、基

Python实现文件下载、Cookie以及重定向的方法代码

《Python实现文件下载、Cookie以及重定向的方法代码》本文主要介绍了如何使用Python的requests模块进行网络请求操作,涵盖了从文件下载、Cookie处理到重定向与历史请求等多个方面,... 目录前言一、下载网络文件(一)基本步骤(二)分段下载大文件(三)常见问题二、requests模块处理

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