x-requested-with 请求头
在服务器端判断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 异步请求方式
accept */*
accept-language zh-cn
referer xxx
x-requested-with XMLHttpRequest //表明是AJax异步
content-type application/x-www-form-urlencoded,text/javascript
accept-encoding gzip, deflate
user-agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; QQDownload 598; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1)
host 192.168.101.72:8080
content-length 233
connection Keep-Alive
cache-control no-cache
cookie CSS=undefined; JSESSIONID=1B9AC25036290F7FB6823CCE1A24E541
可以看到 Ajax 请求多了个 x-requested-with ,可以利用它,request.getHeader("x-requested-with"); 为 null,则为传统同步请求,为 XMLHttpRequest,则为 Ajax 异步请求。
分享到:
相关推荐
X-Requested-With常用于判断是不是ajax请求 但是有时我们会有需要删除X-Requested-With的情况 下面介绍一种方式 js代码 代码如下: $.ajax({ url: ‘http://www.zhangruifeng.com’, beforeSend: function( xhr ) { ...
3. **其他HTTP请求头分析**:除了`X-Requested-With`外,还有其他请求头可以辅助判断。 4. **实现方法**:介绍几种常见的编程语言如何实现这一功能。 ### HTTP请求头的差异 当客户端通过Ajax发送请求时,其HTTP...
`$_SERVER['HTTP_X_REQUESTED_WITH']` 是一个在 PHP 中常见的用来识别 AJAX(Asynchronous JavaScript and XML)请求的变量。然而,很多人对这个变量的理解并不深入,常常将其误认为是 PHP 内置的自定义变量,而实际...
例如,我们可以在`onreadystatechange`事件处理函数中使用`getAllResponseHeaders()`方法来获取所有的响应头信息,然后使用`indexOf()`方法来判断请求头中是否存在`X-Requested-With`: ```javascript xmlhttp....
在这个方法里,我们需要检查请求头部的`X-Requested-With`字段,如果是Ajax请求,则返回一个JSON响应表示权限不足;如果不是,则按照原有方式重定向到无权限页面。 #### 三、区分Ajax实现 ##### 3.1 定义一个过滤...
response.setHeader("Access-Control-Allow-Headers", "Origin,X-Requested-With,Content-Type,Accept,Authorization,token"); // System.out.println("*********************************过滤器被使用************...
- **CORS允许的头**: `http.cors.allow-headers:Authorization,X-Requested-With,Content-Length,Content-Type`。指定哪些HTTP头部字段可以被客户端访问。 - **CORS允许的来源**: `http.cors.allow-origin:/.*/`。...
在JavaScript中,使用`$.ajax`或者`fetch`等方法发送异步请求时,服务器会根据请求头中的`X-Requested-With`字段来判断是否为AJAX请求。如果设置了`ajax=1`,或者在请求头中设置了`X-Requested-With: XMLHttpRequest...
<param-value>token,Access-Control-Allow-Origin,Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value> --> <param-value>Access-Control...
受到很多模版代码的影响,大家都以为php有这样一个自定义变量:$_SERVER[‘HTTP_X_REQUESTED_WITH’]. 其实根本不是那么回事. $_SERVER是一个包含诸如头信息(header),路径(path)和脚本位置(script locations)的数组.这...
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Token'; // 允许的头部信息 add_...
当然,如果使用原生JavaScript的`XMLHttpRequest`对象或`fetch` API发送Ajax请求,开发者需要手动设置`X-Requested-With`头信息,就像这样: ```javascript // 使用XMLHttpRequest var xhr = new XMLHttpRequest();...
- 请求头中包含了必要的HTTP头部信息,如content-type定义了数据格式,cache-control防止缓存,X-Requested-With标识请求来源。 4. **响应格式**: - 响应信息包含关键字段,如state表示通讯状态,code表示状态码...
<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> </init-param> <init-param> <param-name>cors.exposedHeaders</param-name> <param-value>Set-Cookie</param-...
PocCreator GET和POST请求的POC创建者。 您只需要编辑脚本,然后选择输出文件夹,然后添加请求格式,例如Burp或Fiddler,例如本例: * ------------------------'''POST /... charset = UTF-8 X-Requested-With:X
3. `Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'`:设置允许的请求头,防止因特定请求头未被服务器...
<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> </init-param> <init-param> <param-name>cors.exposedHeaders</param-name> <param-value>Set-Cookie</param...
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }); ``` 这将允许所有源("*")进行跨域请求,并且允许常见的HTTP请求头。对于更复杂的CORS策略,可能...