Express框架Restful API Ajax 跨域 开启Cookie支持
前端(Jquery Ajax):
1 $.ajax({ 2 url: "http://localhost/api/test/", 3 type: "POST", 4 xhrFields: { 5 withCredentials: true //必须添加 6 }, 7 crossDomain: true, //必须添加 8 success: function (data) { 9 alert(data); 10 } 11 });
Node.js:
1.Cookie操作库(cookie.js):
1 'use strict'; 2 //依赖 cookie-parser 模块 3 4 var cookieParser = require('cookie-parser'); 5 var config = { 6 isUseCookieSign:false, //是否使用cookie加密 7 sign:'cookieSecret', //cookie加密字符 8 maxAge:900000 //cookie失效时间 9 }; 10 11 exports.initCookie = function(app){ 12 //如果开启cookie加密 13 if(config.isUseCookieSign){ 14 app.use(cookieParser(config.sign)); 15 } else{ 16 app.use(cookieParser()); 17 } 18 19 } 20 //设置cookie 21 exports.setCookie = function(res,key,value){ 22 res.cookie(key, value, { 23 maxAge: config.maxAge, 24 httpOnly: true, 25 //只允许在https协议下传输cookie 26 // secure:true, 27 signed: config.isUseCookieSign 28 }); 29 } 30 //获取cookie 31 exports.getCookie = function(req,key){ 32 if(config.isUseCookieSign){ 33 if(req.signedCookies[key] === undefined){ 34 return null; 35 } else{ 36 return req.signedCookies[key]; 37 } 38 39 } else{ 40 if(req.cookies[key] === undefined){ 41 return null; 42 } else{ 43 return req.cookies[key]; 44 } 45 46 } 47 } 48 //删除cookie 49 exports.delCookie = function(res,key){ 50 res.clearCookie(key); 51 }
2.启动时绑定中间件和设置http response header
//绑定中间件require('./lib/cookie').initCookie(app);//设置http header
app.use(
function (req, res, next) {
//设置返回头
res.set({
'Access-Control-Allow-Origin':'http://localhost',//设置允许的域
'Access-Control-Allow-Credentials':'true' //允许发送Cookie
});
next();
}
);
3.接口调用处理cookie
1 'use strict'; 2 var cookie = require('../../lib/cookie'); //cookie库引用 3 4 exports.bind = function (app, preUrl) { 5 6 app.post(preUrl+'/',function(req,res,next){ 7 //获取cookie 8 console.log(cookie.getCookie(req,'name')); 9 //设置cookie 10 cookie.setCookie(res,'name','xjytest'); 11 res.send('OK'); 12 }) 13 14 }
通过以上设置,Express Restful API 可以自由的设置和调用前端的cookie了。
转载于:https://www.cnblogs.com/sheryee/p/10688535.html
Express框架Restful API Ajax 跨域 开启Cookie支持相关推荐
- mui的使用--登录,发送ajax,跨域,cookie设置验证失效,及$.plusReady等问题与解决,(二)
真的太天真,接触MUI一个星期,问题真层出不穷,一度考虑换一个移动框架,但暂时没有找到一个前端框架,文档里面包括对手势事件处理,上拉刷新等封装处理操作,加上应用程序和WAP的混合开发的巨大的魅力,还是 ...
- asp.net core 2.0 api ajax跨域问题
API配置: services.AddCors(options =>{options.AddPolicy("any", builder =>{builder.WithO ...
- 【node进阶】深度解析express框架---编写接口|解决跨域问题
✅ 作者简介:一名普通本科大三的学生,致力于提高前端开发能力 ✨ 个人主页:前端小白在前进的主页
- ajax跨域获取cookie,ajax跨域获取cookie信息(示例代码)
js脚本ajax请求 news.xxx.com 请求www.xxx.com获取登录状态信息 $.ajax({ type: "GET", url: 'http://www.xxx.c ...
- ajax跨域请求传递Cookie问题
问题描述 前后端完全分离的项目,前端使用Vue + axios,后端使用SpringMVC,容器为Tomcat. 使用CORS协议解决跨域访问数据限制的问题,但是发现客户端的Ajax请求不会自动带上服 ...
- ajax跨域请求及传递cookie
一.ajax跨域访问 先要搞清楚什么是ajax跨域.看如下例子即可明白: 网站A:a.test.com 通过ajax请求网站B:b.test.com上的接口,很明显网站A和网站B 是两个不同的域,而处 ...
- $.ajax 跨域请求 Web Api
WepApi确实方便好用,没有配置文件,一个apicontroller直接可以干活了.但今天用$.ajax跨域请求的时候总是获取不到数据,用fiddler一看确实抓到了数据,但回到$.ajax函数中, ...
- Vuejs模拟Ajax请求接口(天气预报API)跨域问题 - 案例篇
vuejs的Ajax跨域请求问题一直都是前端人员开发vue项目进程中经常遇到的不得不解决的热门问题,也是个心病. 首先看一下,页面 报错内容提示: Access to XMLHttpRequest a ...
- ajax跨域练习-第三方api全国天气查询
最近学习了ajax跨域,看到教程视频通过调用第三方的api来进行查询数据,于是我也自己尝试下调用当做一个小练习.过程还是不难的,第三方api的教程也很清晰明了,很容易就能调用了. demo截图: 不要 ...
最新文章
- Image Watch的使用示例
- SAP 解决长时间不操作掉线问题
- sonarQube 7.2版本下载配置pmd插件(版本要兼容),并设置只使用pmd规则
- 在浏览器里使用 SAP GUI
- 解决MongoDB Compass
- SELinux系列(二)——SELinux有什么作用
- Solar中跨控制器引用视图!
- OpenGL基础16:视角
- 安卓 卡顿 APP
- mmsi是代表船舶什么_海上移动业务识别码(MMSI)是一种九位识别码,主要分配给()在DSC和NBDP通信中相互识别身份是使用。...
- 清华EMBA课程系列思考之六 -- 比较文明视野下的中华领导智慧、企业管理与经济解析
- 英语练习95 Computers
- 【宠物商店管理系统】基于SSM的宠物商店系统(ppt+论文+源代码)
- 基于微信小程序的网上订餐系统 报告+任务书+开题报告+文献综述+中期PPT+外文翻译及原文+PPT+项目源码及数据库文件
- 名帖301 刘墉 行书《自作诗卷》
- android 乐固加固,android - 上应用宝之前,使用乐固 进行加固。 (只能在windows 下)...
- PKUSC 模拟赛 day1 下午总结
- 基于FPGA的VGA时序控制器
- 城际客车微信订票系统(固定线路拼车在线售票平台开发)
- oracle查看视图定义语句_oracle视图详解
热门文章
- 建立合理的索引提高SQL Server的性能
- 期待着DELPHI的浴火重生
- 修改mysql的max_allowed_packet值
- 堆的C语言实现——堆与堆排序(二)
- Android框架攻击之Fragment注入
- rhel7安装vnc出现error: Failed dependencies:
- php分页功能乱码了怎么办,51、PHP文件内容分页操作,避免乱码
- Hdu 1269.迷宫城堡
- form提交后台注解拿不到数据_Form表单详解
- ai算子是什么_肇观电子刷新端侧AI芯片性能记录并发布“5分钟部署”AI开发平台 - 企业资讯...