x-requested-with

使用XMLHttpRequest执行Ajax请求

谁说我不能喝 提交于 2019-12-02 22:38:44
昨天,一个朋友,问我一个问题: 通过查找网络资源,发现在服务器端识别Ajax请求和一般请求的的方法。大部分说到,通过http请求头中X-Requested-With的值来区分。如此,朋友通过如下代码执行了请求,却始终没有找到这个标志信息: // 此只作为测试代码 var req = new XMLHttpRequest(); req.open('GET', 'http://www.baidu.com', true); req.send(); 通过firebug,监听到的请求信息中,没有在请求头中发现 X-Requested-With的信息。 分析这个问题: 其实,我们通过js中的XMLHttpRequest,发送的为基本的header信息,如此,怀疑 X-Requested-With的这个标志位是自己设置下的。 接下来,我用通过jquery的Ajax进行了一次请求,发现存在这个标志位。接下来为了证明我的思路,去jquery的源码中,查看一下Ajax那段代码,从中找到了我们需要的信息,即: // X-Requested-With header // For cross-domain requests, seeing as conditions for a preflight are // akin to a jigsaw puzzle, we simply never set it

x-requested-with 请求头 区分ajax请求还是普通请求

本秂侑毒 提交于 2019-12-02 22:38:06
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步):    两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数    1、传统同步请求参数     accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8     accept-charset gb2312,utf-8;q=0.7,*;q=0.7     accept-encoding gzip,deflate     accept-language zh-cn,zh;q=0.5     cache-control max-age=0     connection keep-alive     cookie JSESSIONID=1A3BED3F593EA9747C9FDA16D309AF6B     host 192.168.101.72:8080     keep-alive 300     referer XXX     user-agent Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)    2、Ajax