前端页面跳转session丢失问题

    xiaoxiao2021-04-19  106

          最近自己在搞后端采用分布式多台服务器部署,然后前后端分离的开发方式,页面在使用window.location.href 跳转方式或者其它前端的跳转方式的时候,再向后端应用服务器请求Cookie sessionid总是获取不到,这个怎么办,仔细分析后原来是跨域的问题,前端我使用了Hbuilder开发工具,默认用它起的服务都是8020端口的,但是我向后台请求是其它端口,这就相当于我又新打开了一个页面进行服务器的请求所以没有Cookie没有追踪到sessionId。

    解决思路:既然前端服务器后端的服务器不是同一个域下,我可以对外提供统一访问地址,然后通过过滤的方式把对应用服务器的请求转发到应用服务器。这里我使用了nginx服务器来解决这个问题。

    1.下载Nginx Window版本并且配置(正式部署建议使用Linux版本在)

         下载地址:http://nginx.org/en/download.html

        配置路径在nginx-1.12.0\conf下

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; upstream abroad{ ip_hash; server 127.0.0.1:8089; } server { listen 80; server_name localhost; location /{ proxy_pass http://abroad; proxy_redirect default; } location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|woff|woff2|ttf|map|json)$ { root D:/web/abroad; expires 7d; } } }简单说明:    server 代表的是应用服务器地址     location是 有拦截的文件类型

    2.配置ngnix前端页面文件路径

       由于我还想用Hbuilder或者是Webstorm这类的前端开发工具这个路径就指定前端项目所在路径,我就可以实时看页面效果了。

    3.启动与关闭ngnix服务器

       cmd进入到ngnix所在的目录执行ngnix.exe启动服务  ngnix.exe -s stop关闭服务

    4.测试sessionId还是是否丢失 

        这个时候查看sessionId是否在请求头中已经存在。 如图所示:

    转载请注明原文地址: https://ju.6miu.com/read-675976.html

    最新回复(0)