前端页面跳转session丢失问题

来源:互联网 发布:seo零基础入门 编辑:程序博客网 时间:2024/05/16 17:12

      最近自己在搞后端采用分布式多台服务器部署,然后前后端分离的开发方式,页面在使用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是否在请求头中已经存在。 如图所示:





0 0
原创粉丝点击