前端(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支持相关推荐

  1. mui的使用--登录,发送ajax,跨域,cookie设置验证失效,及$.plusReady等问题与解决,(二)

    真的太天真,接触MUI一个星期,问题真层出不穷,一度考虑换一个移动框架,但暂时没有找到一个前端框架,文档里面包括对手势事件处理,上拉刷新等封装处理操作,加上应用程序和WAP的混合开发的巨大的魅力,还是 ...

  2. asp.net core 2.0 api ajax跨域问题

    API配置: services.AddCors(options =>{options.AddPolicy("any", builder =>{builder.WithO ...

  3. 【node进阶】深度解析express框架---编写接口|解决跨域问题

    ✅ 作者简介:一名普通本科大三的学生,致力于提高前端开发能力 ✨ 个人主页:前端小白在前进的主页

  4. ajax跨域获取cookie,ajax跨域获取cookie信息(示例代码)

    js脚本ajax请求 news.xxx.com 请求www.xxx.com获取登录状态信息 $.ajax({ type: "GET", url: 'http://www.xxx.c ...

  5. ajax跨域请求传递Cookie问题

    问题描述 前后端完全分离的项目,前端使用Vue + axios,后端使用SpringMVC,容器为Tomcat. 使用CORS协议解决跨域访问数据限制的问题,但是发现客户端的Ajax请求不会自动带上服 ...

  6. ajax跨域请求及传递cookie

    一.ajax跨域访问 先要搞清楚什么是ajax跨域.看如下例子即可明白: 网站A:a.test.com 通过ajax请求网站B:b.test.com上的接口,很明显网站A和网站B 是两个不同的域,而处 ...

  7. $.ajax 跨域请求 Web Api

    WepApi确实方便好用,没有配置文件,一个apicontroller直接可以干活了.但今天用$.ajax跨域请求的时候总是获取不到数据,用fiddler一看确实抓到了数据,但回到$.ajax函数中, ...

  8. Vuejs模拟Ajax请求接口(天气预报API)跨域问题 - 案例篇

    vuejs的Ajax跨域请求问题一直都是前端人员开发vue项目进程中经常遇到的不得不解决的热门问题,也是个心病. 首先看一下,页面 报错内容提示: Access to XMLHttpRequest a ...

  9. ajax跨域练习-第三方api全国天气查询

    最近学习了ajax跨域,看到教程视频通过调用第三方的api来进行查询数据,于是我也自己尝试下调用当做一个小练习.过程还是不难的,第三方api的教程也很清晰明了,很容易就能调用了. demo截图: 不要 ...

最新文章

  1. Image Watch的使用示例
  2. SAP 解决长时间不操作掉线问题
  3. sonarQube 7.2版本下载配置pmd插件(版本要兼容),并设置只使用pmd规则
  4. 在浏览器里使用 SAP GUI
  5. 解决MongoDB Compass
  6. SELinux系列(二)——SELinux有什么作用
  7. Solar中跨控制器引用视图!
  8. OpenGL基础16:视角
  9. 安卓 卡顿 APP
  10. mmsi是代表船舶什么_海上移动业务识别码(MMSI)是一种九位识别码,主要分配给()在DSC和NBDP通信中相互识别身份是使用。...
  11. 清华EMBA课程系列思考之六 -- 比较文明视野下的中华领导智慧、企业管理与经济解析
  12. 英语练习95 Computers
  13. 【宠物商店管理系统】基于SSM的宠物商店系统(ppt+论文+源代码)
  14. 基于微信小程序的网上订餐系统 报告+任务书+开题报告+文献综述+中期PPT+外文翻译及原文+PPT+项目源码及数据库文件
  15. 名帖301 刘墉 行书《自作诗卷》
  16. android 乐固加固,android - 上应用宝之前,使用乐固 进行加固。 (只能在windows 下)...
  17. PKUSC 模拟赛 day1 下午总结
  18. 基于FPGA的VGA时序控制器
  19. 城际客车微信订票系统(固定线路拼车在线售票平台开发)
  20. oracle查看视图定义语句_oracle视图详解

热门文章

  1. 建立合理的索引提高SQL Server的性能
  2. 期待着DELPHI的浴火重生
  3. 修改mysql的max_allowed_packet值
  4. 堆的C语言实现——堆与堆排序(二)
  5. Android框架攻击之Fragment注入
  6. rhel7安装vnc出现error: Failed dependencies:
  7. php分页功能乱码了怎么办,51、PHP文件内容分页操作,避免乱码
  8. Hdu 1269.迷宫城堡
  9. form提交后台注解拿不到数据_Form表单详解
  10. ai算子是什么_肇观电子刷新端侧AI芯片性能记录并发布“5分钟部署”AI开发平台 - 企业资讯...