express跨域设置(跨域post请求)

最近在学习express,就用以前做的项目来进行express前后端分离的练手了,在做登陆注册的时候发现跨域的时候,session的值是会失效的,导致session里面的数据获取为undefined,网上找资料加上自己的不断尝试,终于找到了解决方法,简单记录一下解决方法。 1、客户端因为session原则上是需要cookie支持的,所以Ajax方法里面必须添加xhrFields:{withCred…

最近在学习express,就用以前做的项目来进行express前后端分离的练手了,在做登陆注册的时候发现跨域的时候,session的值是会失效的,导致session里面的数据获取为undefined,网上找资料加上自己的不断尝试,终于找到了解决方法,简单记录一下解决方法。

1、客户端因为session原则上是需要cookie支持的,所以Ajax方法里面必须添加 xhrFields:{withCredentials:true},表示允许带Cookie的跨域Ajax请求( 特别说明,只要使用的session都得加这句)

 $(\'#login\').click(function () {
 $.ajax({
 url: \'http://localhost:3000/users/yzm\',//服务端路由地址
 type: \'get\',
 xhrFields:{withCredentials:true},
 dataType: \'json\',
 success:function(data){
 $(\'#yzm_img\').html(data)
 },
 error:function(){
 alert(\'error\');
 }
 });
 });
 $(\'#form_login\').submit(function (e) {/!*登录*!/
 e.preventDefault();/!*阻止表单默认事件,页面全局刷新*!/
 var data=$(\'#form_login\').serialize();/!*将表单里的数据包装起来*!/
 $.ajax({
 url : \'http://localhost:3000/users/login\',
 type : \"post\",
 data : data,
 xhrFields:{withCredentials:true},
 dataType:\'json\',
 success:function(msg) {
 alert(\"这是返回的数据\"+msg);
 },
 error:function(err){
 alert(\"这是失败的信息\"+err);
 }
 });
 });

通过设置 withCredentials: true ,发送Ajax时,Request header中便会带上 Cookie 信息。

2、服务器端修改app.js文件

相应的,对于客户端的参数,服务器端也需要进行设置。

对应客户端的
xhrFields.withCredentials: true 参数,服务器端通过在响应 header 中设置 Access-Control-Allow-Credentials = true 来运行客户端携带证书式访问。通过对 Credentials 参数的设置,就可以保持跨域 Ajax 时的 Cookie。

var express = require(\'express\');
var session = require(\'express-session\');/*引入会话变量*/
var app = express();
app.all(\'*\', function(req, res, next) {
 res.header(\"Access-Control-Allow-Origin\", \"http://localhost:63342\");//前端域名
 res.header(\"Access-Control-Allow-Credentials\",\'true\');
 res.header(\"Access-Control-Allow-Methods\",\"PUT,POST,GET,DELETE,OPTIONS\");
 next();
});

特别注意:服务器端
Access-Control-Allow-Credentials = true时,参数Access-Control-Allow-Origin 的值不能为 ‘*’ ,必须为自己客户端项目所在地址。

3、服务器中使用session

router.get(\'/yzm\', function(req, res, next) {
 req.session.yzm=\'abcd\';
}
router.post(\'/login\', function(req, res, next) {
 console.log(req.session.yzm);
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月18日 上午11:29
下一篇 2022年5月18日 上午11:31

相关推荐

  • 怎么改苹果手机铃声,教你分分钟快速改手机铃声

    毫无预兆的,QQ音乐更新。 如果是普通的更新,最多就看两眼,并不值得机哥特意撸一篇文章。 但是嚯,这个更新,正好解决了iPhone用户这么多年来的痛点。 不多BB,你们先看图。 重点就是第一项更新,无需电脑,手机歌曲也能直接设置为来电铃声,短信铃声。 鹅妹子嘤,iPhone用户终于扬眉吐气,再也不用被安卓diss不能换铃声。 当然,具体操作是怎么样,整个过程会不会很麻烦,这些都是机哥下面要说的。 …

    2022年9月27日
    410
  • 笔记本物理内存过高怎么办,六个步骤轻松解决内存过高

    内存占用率过高,是电脑十分常见的电脑故障,出现的现象就是什么软件还没有打开,内存占用了70%以上,甚至是99%,出现电脑明显卡顿的问题。不过想要解决内存占用率高不是简单的事情,因为可能性比较多,可能是某个软件导致的,也有可能是系统服务所致,也有驱动程序导致的问题等,需要对症下药才可以解决问题。那么内存占用率过高怎么办?下面装机之家分享一下Win10电脑内存占用率很高的原因和解决方法。 一、系统服务…

    2022年9月8日
    3700
  • 合肥特色美食有哪些,来合肥一定要吃的10样东西

    提起合肥,人们只知晓是安徽省的省城,但是你可知晓在古代是十分发达的处所。如此繁华的处所,天然少不了人们爱吃的美食。合肥的美食小吃数不堪数,去安徽看名胜事迹的人肯定想要知晓本地有甚么美味的,那就不要错过这篇文章,今日就让小编带你去看看合肥十大典型美食! 一、李鸿章杂烩 李鸿章是清朝重臣,常常要拜访外国使者。有一次外国使者前来,李鸿章明人备好了这道菜,外国使者尝后赞一向口,过后变成为了一款闻名中外的名…

    2022年10月14日
    4620
  • cad看图软件下载哪个好用(cad看图软件推荐)

    今天给大家介绍一款非常给力的软件,它就是Autocad2021,这是知名度极高的一款计算机辅助设计软件,具有成千上万个可用的工具,因此只要配合借助其强大而灵活的工具组合,就能完美的帮助用户编辑2D几何图形、二维绘图、详细绘制、设计文档、三维设计等任何内容,轻轻松松即可满足不同用户人群们的使用需求。同时该软件中的DWG可是业界使用最广泛的设计数据格式之一,不仅可以通过导入、导出或附加为参考底图,来共…

    2022年5月11日
    790
  • 微商推广办法有哪些,当下微商最好的推广方式

    大家好我是猛龙弟弟。也是一名买香辣食品的小哥哥。今天我给大家分享一些微商推广的干货 首先!关于微商,我相信大家都不陌生。打开朋友圈,全是微商。怎样从这些人中脱颖而出? 1、朋友圈多样化。可以多设置互动游戏。猜谜语看手相。红包点赞等。调动朋友圈活跃度。 朋友圈不要一味硬广告。多发成交图等等。尽量简洁,让人舍不得删了你。 2、朋友圈。可以塑造自己的形象和人品。微商立于信。无时无刻让大家感受到你的诚信。…

    2022年8月12日
    560
  • 投资行业前景如何(未来最有发展空间的六个投资方向)

    有句话说得好,选择比努力更重要,有些人一辈子辛辛苦苦工作但是却连房子到买不起,但是有些人看准趋势之后,只需要动动手指就可以赚几百万甚至上千万。比如2011年到2017年比特币,还有2010年到现在的房地产市场,如果10年之前大家把眼光放得远一些,投资了比特币或者房产,那现在身家至少可以翻好几倍了,说不定投资带来的价值比前几十年奋斗所产生的所有收入还要多。 由此可见,选择正确的一个投资方向是非常重要…

    2022年9月17日
    570
  • 什么是汇率(汇率怎么理解)

    汇率是什么意思?汇率(又称外汇利率,外汇汇率或外汇行市)两种货币之间的对换的比率,亦可视为一个国家的货币对另一种货币的价值。汇率又是各个国家为了达到其政治目的的金融手段。汇率会因为利率,通货膨胀,国家的政治和每个国家的经济等原因而变动。而汇率是由外汇市场决定。外汇市场开放予不同类型的买家和卖家以作广泛及连续的货币交易(外汇交易除周末外每天24小时进行,即从G…

    2022年5月1日
    880
  • 新产品推广怎么做,一步教你如何快速推广新产品

    新产品的上市,必然要进行大规模的宣传推广,但是往往很多新产品的上市都是上市时候风声很大,但是在销量方面却不尽人意,那么怎么给消费者一个必买的理由呢? 正确的思路 影响人们购买一个产品的因素有很多,明显的几个就是对产品本身的认知、购买习惯、购买环境。解决认知这个因素,就需要进行大量的内容宣传,比如产品文案、图文说明、视频、广告投放等。而购买环境和购买习惯我们是不能轻易改变得了的,所以就需要巧妙地融入…

    2022年6月14日
    640
  • lol进不去游戏界面怎么办,教你一招轻松解决

    英雄联盟强制新客户端,就此旧客户端不能再登陆。服务器拒绝旧客户端登陆。但是网友们载了新客户端,暴露出种种问题。 多数网友都卡在这个LOGO上,再也进不去游戏。 新客户端可以登陆进去,但是选好英雄出现英雄联盟logo之后就没有后续进入游戏的界面,一直卡在这个logo上。 这已经不是一两个玩家提出遭遇这个问题,而是一部分玩家同时遭遇这个卡顿问题。 这绝非电脑配置问题,或是网络问题,而是客户端或是服务器…

    2022年9月17日
    820
  • 小米平板4上市时间及价格,华为平板m6与小米平板4哪个比较好

    小米今天正式发布了小米平板4,这是自2017年4月5日小米平板3发布之后小米时隔一年再度更新平板产品线。 小米平板 4采用8英寸16:10屏幕,分辨率为1920×1200、PPI缩水为283(小米平板3为7.9英寸2048x 1536分辨率,PPI为326)。小米官方称小米平板4这块全高清屏幕支持护眼模式、标准模式、增强模式、夜光屏、智能适应模式下无级色温。 相比于小米平板 3,小米平板4对硬件进…

    2022年6月11日
    1730

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信