1.前端测试代码angular8

// 测试代码
testCookie() {
const url = 'http://10.11.11.11:3000/test/cookie'
const params = {a:1}
// {withCredentials: true} 这个是重点!!!!
this.http.post( url,{}, params, {withCredentials: true}).subscribe(_ => {
console.log(_)
})
}
// 测试代码

2.后端测试代码nodejs

app.js

const express=require('express');
// const bodyParser=require('body-parser');
const session = require('express-session')
var MySQLStore = require('express-mysql-session')(session); var options = {
host: '22.22.22.22',
port: 3306,
user: 'root',
password: '123',
database: 'aaa'
}; var sessionStore = new MySQLStore(options); //引入路由模块
const cors=require('cors');
// const index=require("./routes/index");
const test = require('./routers/test') //创建web服务器
var server=express();
//托管静态资源到public下;
server.use(express.static('public'));
//跨域请求cors
server.use(cors
(
{
// origin:"*" ,
// origin:"http://localhost:8080" ,
origin:"http://10.11.33.33:4200" ,
// origin:"http://127.0.0.1:5500" ,
credentials: true
}
)
);
// server.writeHead(200,{"Access-Control-Allow-Credentials":true});
server.use(express.json())
server.use(express.urlencoded({
extended:false
})); //session 启用会话中间件,用来保存用户登录状态以及验证码
server.use(session({
name: 'sessionId',
resave: true,
saveUninitialized: true,
secret: 'APP_SESSION_SECRET',
store: sessionStore // 将会话存到数据库
})) server.use('/test',test);
server.use('/index',index); server.use((req, res, next) => {
res.status(404).send('404 not found')
}) // 异常处理器
server.use((req,res,next,err)=>{
console.log('err.message')
console.log(err.message)
// res.send(500);
}) server.listen(3000);

./routers/test.js

const i18n = require('../i18n')
//创建路由器对象
const express = require('express')
//引入连接池模块
const pool = require('../pool.js')
const querystring = require('querystring')
const bodyParser = require('body-parser')
//创建路由器对象
var router = express.Router()
var code200 = { code: 200, msg: 'successful' }
var code401 = {
code: 401,
msg: 'this is required,so you cannot leave any of those blank ',
}
var code403 = { code: 403, msg: 'something has wrong' }
//post提交需要三项,引入body-parser 中间件 然后.body
router.use(
bodyParser.urlencoded({
extended: false,
})
) // 查询MC(Move Change)
router.post('/cookie', function (req, res) {
var obj = req.body
var cooki = req.headers.cookie
console.log('打印COOKIE')
console.log(cooki)
let data = {
data: [1,2,1],
msg: 'SearchMC Success',
status: 'Success',
} setTimeout(() => {
res.send(data)
}, 100)
})
//导出路由器对象
module.exports = router

3.开始发送请求,你会发现

4.request headers里多了一个cookie字段,并且后端代码可以把前端发送的cookie打印出来了~~~~

angular8实现前端携带cookie发送给后端+nodejs获取前端发送的cookie的更多相关文章

  1. 后端Apache获取前端Nginx反向代理的真实IP地址 (原创贴-转载请注明出处)

    ====================说在前面的话==================== 环境:前段Nginx是反向代理服务器:后端是Apache是WEB项目服务器 目的:让后端Apapche获取 ...

  2. Nginx 负载均衡 后端服务器获取前端用户真实IP

    Nginx 后端 日志文件 获取的都是 前端 负载均衡器的IP 想要获取用户的真实IP 必须 使用Nginx 的模块  http_realip_module  才行!! 1. 编译 Nginx 的时候 ...

  3. NodeJS + PhantomJS 前端自动化资源监控

    前言:最近做前端资源监控,看了很多例子,没有达到想要的效果.首先的槽点是PhantomJS的官方文档,真鸡肋,其次是网上的例子,多数是介绍PhantomJS的用法,而并没有介绍怎么完整的去实现,跟官方 ...

  4. 前后端分离框架前端react,后端springboot跨域问题分析

    前后端分离框架前端react,后端springboot跨域问题分析 为啥跨域了 前端react的设置 springboot后端设置 为啥跨域了 由于前后端不在一个端口上,也是属于跨域问题的一种,所以必 ...

  5. 前端nginx时,让后端tomcat记录真实IP【转】

    对于nginx+tomcat这种架构,如果后端tomcat配置保持默认,那么tomcat的访问日志里,记录的就是前端nginx的IP地址,而不是真实的访问IP.因此,需要对nginx.tomcat做如 ...

  6. 聚是一团火散作满天星,前端Vue.js+elementUI结合后端FastAPI实现大文件分片上传

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_175 分片上传并不是什么新概念,尤其是大文件传输的处理中经常会被使用,在之前的一篇文章里:python花式读取大文件(10g/50 ...

  7. 【开源】分享一个前后端分离方案-前端angularjs+requirejs+dhtmlx 后端asp.net webapi

    一.前言 半年前左右折腾了一个前后端分离的架子,这几天才想起来翻出来分享给大家.关于前后端分离这个话题大家也谈了很久了,希望我这个实践能对大家有点点帮助,演示和源码都贴在后面. 二.技术架构 这两年a ...

  8. 简单利用jQuery加tomcat,让前端开发不再依赖于后端的接口

    前端开发的过程中,我们免不了和后端进行联调,这时候就会出现以下的尴尬场景: 接口没写好,没法做接下来的功能 功能写好了,接口没写好,没法测这个功能 联调了,除了BUG,不知道锅在谁身上,只得陪后端耗时 ...

  9. 框架基础:ajax设计方案(三)--- 集成ajax上传技术 大文件/超大文件前端切割上传,后端进行重组

    马上要过年了,哎,回家的心情也特别的激烈.有钱没钱,回家过年,家永远是舔舐伤口最好的地方.新的一年继续加油努力. 上次做了前端的ajax的上传文件技术,支持单文件,多文件上传,并对文件的格式和大小进行 ...

  10. 简单利用jQuery,让前端开发不再依赖于后端的接口

    前端开发的过程中,我们免不了和后端进行联调,这时候就会出现以下的尴尬场景: 接口没写好,没法做接下来的功能 功能写好了,接口没写好,没法测这个功能 联调了,出了BUG,不知道锅在谁身上,只得陪后端耗时 ...

随机推荐

  1. 看了同事这10个IDEA神级插件,我也悄悄安装了

    昨天,有读者私信发我一篇文章,说里面提到的 Intellij IDEA 插件真心不错,基本上可以一站式开发了,希望能分享给更多的小伙伴,我在本地装了体验了一下,觉得确实值得推荐,希望小伙伴们有时间也可 ...

  2. 详解pyautogui模块

    一.安装 pip install pyautogui 或者 pip install -i  https://pypi.tuna.tsinghua.edu.cn/simple pyautogui 二.全 ...

  3. Archlinux安装Picgo配置Typora

    Typora堪称为markdown界的老大哥,其大名我们多有耳闻,所见即所的就是他的特点.但是在日常使用中,也经常会碰到一些特别的需求,比如:希望图片能够上传到云端. 怎么将markdown即时粘贴的 ...

  4. [leetcode] 994. Rotting Oranges

    题目 You are given an m x n grid where each cell can have one of three values: 0 representing an empty ...

  5. C#通过unsafe来操作指针

    这里不介绍unsafe的理论,这里单单介绍它的用法.如果要了解的更具体,可以看这篇大神的博文:C#通过指针操作图像 先从一个很简单的例子介绍: private void TestInptr() { u ...

  6. 01-Docker实战,搭建NodeJs环境

    目的 实现简单的docker的nodejs容器,使用Dockerfile构建我们的使用nodejs开发的系统 技术栈 Docker Nodejs Express Linux step1 下拉nodej ...

  7. TreeUtils工具类一行代码实现列表转树 实战Java8 三级菜单 三级分类 附视频

    一.序言 在日常一线开发过程中,总有列表转树的需求,几乎是项目的标配,比方说做多级菜单.多级目录.多级分类等,有没有一种通用且跨项目的解决方式呢?帮助广大技术朋友给业务瘦身,提高开发效率. 本文将基于 ...

  8. npm卸载"Tracker idealTree already exists"

    问题 使用npm卸载babel插件的时候执行命令npm uninstall babel...出现如下报错 npm ERR! Tracker "idealTree" already ...

  9. 黏包现象、struct模块和解决黏包问题的流程、UDP协议、并发编程理论、多道程序设计技术及进程理论 _

    目录 黏包现象 二.struct模块及解决黏包问题的流程 三.粘包代码实战 UDP协议(了解) 并发编程理论 多道技术 进程理论 进程的并行与并发 进程的三状态 黏包现象 什么是粘包 1.服务端连续执 ...

  10. PHP8.1.10手动安装教程及报错解决梳理

    安装教程参考一:https://www.cnblogs.com/haw2106/p/9839655.html 安装教程参考二:https://www.cnblogs.com/jiangfeilong/ ...