req.xhr在express中的应用

req.xhr判断请求来自ajax还是普通请求;

若为ajax则是为true

这个属性是通过判断headers中的

x-requested-with的值来判断的

下面是来自ajax的请求:

 1   host: ‘localhost:3000‘,
 2   connection: ‘keep-alive‘,
 3   accept: ‘*/*‘,
 4   ‘if-none-match‘: ‘W/"b5-nK3C+n/aPR++6ICHo9ZKmQ"‘,
 5   ‘user-agent‘: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.8 Safari/537.36‘,
 6   ‘x-requested-with‘: ‘XMLHttpRequest‘,
 7   referer: ‘http://localhost:3000/‘,
 8   ‘accept-encoding‘: ‘gzip, deflate, sdch‘,
 9   ‘accept-language‘: ‘zh-CN,zh;q=0.8‘,
10   cookie: ‘privatecloud_sid=s%3AXUaL1RJr1h2r6yb52djAwrK3TWaIL91V.iuM%2FJ5a0MgnJcBrBPBOqFVShhezZly%2BwxxZ2O2bIa%2Bg‘

下面是普通求求:

 1   host: ‘localhost:3000‘,
 2   connection: ‘keep-alive‘,
 3   pragma: ‘no-cache‘,
 4   ‘cache-control‘: ‘no-cache‘,
 5   ‘upgrade-insecure-requests‘: ‘1‘,
 6   ‘user-agent‘: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.8 Safari/537.36‘,
 7   accept: ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8‘,
 8   ‘accept-encoding‘: ‘gzip, deflate, sdch‘,
 9   ‘accept-language‘: ‘zh-CN,zh;q=0.8‘,
10   cookie: ‘privatecloud_sid=s%3AXUaL1RJr1h2r6yb52djAwrK3TWaIL91V.iuM%2FJ5a0MgnJcBrBPBOqFVShhezZly%2BwxxZ2O2bIa%2Bg‘

以上是通过req.headers打印出来的;

红色为相同属性,其他为不同属性;可以根据这些属性来做判断;

时间: 2024-08-05 19:35:53

req.xhr在express中的应用的相关文章

express 中文文档

express() 创建一个express应用程序 var express = require('express'); var app = express(); app.get('/', function(req, res){ res.send('hello world'); }); app.listen(3000); Application app.set(name, value) 将设置项 name 的值设为 value app.set('title', 'My Site'); app.ge

express中的错误处理

错误处理 定义错误处理中间件和定义其他中间件一样,除了需要 4 个参数,而不是 3 个,其格式如下 (err, req, res, next).例如: app.use(function(err, req, res, next) { console.error(err.stack); res.status(500).send('Something broke!'); }); 在其他 app.use() 和路由调用后,最后定义错误处理中间件,比如: var bodyParser = require(

Express中文文档

Express 4.x API express 翻译 api文档 中文 -- express() express()用来创建一个Express的程序.express()方法是express模块导出的顶层方法. var express = require('express'); var app = express(); Methods express.static(root, [options]) express.static是Express中唯一的内建中间件.它以server-static模块为

精华 对express中next函数的一些理解

关于next主要从三点来进行说明: next的作用是什么? 我们应该在何时使用next? next的内部实现机制是什么? Next的作用 我们在定义express中间件函数的时候都会将第三个参数定义为next,这个next就是我们今天的主角,next函数主要负责将控制权交给下一个中间件,如果当前中间件没有终结请求,并且next没有被调用,那么请求将被挂起,后边定义的中间件将得不到被执行的机会. 何时使用Next 从上边的描述我们已经知道,next函数主要是用来确保所有注册的中间件被一个接一个的执

浅析Express中的路由与应用模式

1. 引言 Express是一个基于Node.js的轻量级web开发框架,具有体积小,使用灵活等特点.查看Express的源码,如果不计供使用的中间件,主体框架只有一千余行代码,非常简练. Express模型的核心为Express中定义的路由和路由器.分析Express源码可发现Express的路由提供多种灵活的应用模式. 我们首先介绍一下Express中的路由.路由器相关概念.结构及其特点,然后针对典型场景描述使用Express路由的四种应用模式. 2.Express中的路由与路由器 Expr

node.js之express中app.use

express中app.use 用法: app.use([path,] function [, function…]) 一.app.use() 在express中是怎么工作的 app.use在express中被看成是消息中间件 middleware . Use the given middleware function, with optional mount path, defaulting to “/”, 如果path没有被设定,那么默认为”/”. 引入一个所谓的中间件,其实就是用来再实际请

Express中使用mongodb存储session

express默认有队session的支持,但是是存储在内存中的. 我们可以使用mongodb来存储会话. 但是express的各个版本中对该功能的写法是不同的. Express 2.x: app.use(express.session({ secret: settings.cookieSecret, store: new MongoStore({ db: settings.db })})); Express 3.x: var express = require('express');var m

解决android调用IIS Express中的WCF服务时,出现错误400问题

IIS Express仅支持localhost主机名地址访问. 找到IIS Express Config文件下的 applicationhost.confi   修改配置 再来调试android应用,发下已经成功调用 解决android调用IIS Express中的WCF服务时,出现错误400问题,布布扣,bubuko.com

ASP.NET web express中使用arcgis sliverlight

1. 在visual studio 2013 工具扩展中搜ESRI,选择合适的模版安装 2. 项目新建,刚刚安装的模版 3. 通常会报一个错误,interactions的 4. 工具->nugit程序管理包,搜索interactivity 进行安装(这里需要使用IE打开,否则会报一个指针错误) ASP.NET web express中使用arcgis sliverlight,布布扣,bubuko.com