`
zzc1684
  • 浏览: 1229248 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

判断是否Ajax请求 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 异步请求。

分享到:
评论

相关推荐

    如何从jQuery的ajax请求中删除X-Requested-With

    X-Requested-With常用于判断是不是ajax请求 但是有时我们会有需要删除X-Requested-With的情况 下面介绍一种方式 js代码 代码如下: $.ajax({ url: ‘http://www.zhangruifeng.com’, beforeSend: function( xhr ) { ...

    服务器端判断Ajax请求

    通常情况下,Ajax请求会包含一个特殊的标头`X-Requested-With`,其值通常设置为`XMLHttpRequest`,以此标识这是一个Ajax请求。 #### 示例请求头对比 - **传统请求示例**: - `Accept`: `text/html,application/...

    判断请求头中是否含有某属性来判断是否是ajax请求

    此外,开发者也可以在自定义的Ajax请求中设置其他值,或者完全不使用`X-Requested-With`头部信息,因此依赖这个头部属性来判断是否是Ajax请求并不是绝对可靠的。 如果要检查请求头中是否有某个特定属性,我们可以在...

    Shiro权限控制-区分Ajax请求

    - **如何区分Ajax请求**:可以通过检查HTTP请求头部中的`X-Requested-With`字段来判断一个请求是否为Ajax请求。当该字段存在且值为`XMLHttpRequest`时,可以认为这是一个Ajax请求。 - **如何处理Ajax请求**:我们...

    php判断是否为ajax请求的方法

    总结一下,PHP中判断Ajax请求的关键在于检查`$_SERVER["HTTP_X_REQUESTED_WITH"]`变量,而这个变量通常是前端通过设置`X-Requested-With`头信息来传递的。通过这种方式,前端和后端可以协同工作,提供流畅的异步体验...

    AJAX 请求区分 $_SERVER['HTTP_X_REQUESTED_WITH'] 小解

    在 PHP 服务器端,我们可以检查 `$_SERVER['HTTP_X_REQUESTED_WITH']` 是否存在以及其值,来判断请求是否来自 AJAX。如果值为 "XMLHttpRequest",那么我们可以确定这是一个 AJAX 请求。这在处理不同类型的请求逻辑,...

    自定义shiro实现识别ajax请求的拒绝返回json,还是普通返回页面

    这个方法可能需要根据所使用的 Web 框架来实现,例如在 jQuery 中,可以通过检查请求头中的 `X-Requested-With` 是否为 `XMLHttpRequest` 来识别。 3. **处理无权限访问**: 当 `onAccessDenied()` 被调用时,如果...

    Java后台判断ajax请求及处理过程详解

    在这个例子中,我们首先检查请求头`x-requested-with`来判断是否为AJAX请求。如果用户会话有效,我们允许请求继续传递到下一个过滤器或目标资源。反之,如果会话过期,我们将对AJAX请求返回一个包含特定标识(如`no...

    spring security ajax请求与html共存

    通常,这可以通过配置`HttpSecurity`对象来实现,添加对X-Requested-With头的支持,这是一个常见的标记Ajax请求的头信息。 ```java http.authorizeRequests() .antMatchers("/ajax/**").permitAll() // 允许所有...

    在php中判断一个请求是ajax请求还是普通请求的方法

    如果jQuery的AJAX请求是通过`iframe`加载的,`HTTP_X_REQUESTED_WITH`头将不会被传递,因此无法准确判断请求类型。在这种情况下,开发者可能需要寻找其他方法,比如设置特定的请求头或者查询字符串参数来识别此类...

    解决拦截器对ajax请求的拦截实例详解

    在示例代码中,使用了`request.getHeader("X-Requested-With")`来获取请求头中的`X-Requested-With`字段,该字段在大多数现代浏览器的Ajax请求中会被设置为`XMLHttpRequest`。如果这个值匹配,那么可以确定这是一个...

    PHP_THINKPHP_study9_判断是否Ajax提交和错误页面定制

    这段代码检查了`$_SERVER`超全局变量中的`HTTP_X_REQUESTED_WITH`,如果它的值是`XMLHttpRequest`,那么我们可以确定这是一个Ajax请求。在ThinkPHP框架中,可以使用内置的方法来实现同样的功能: ```php use think\...

    php检查是否是ajax请求的方法

    通过这段代码可以判断用户的请求是否来自AJAX XMLHttpRequest,以区别普通post,get和ajax function isAjax() { return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == '...

    ajax跨域请求

    Access-Control-Allow-Headers: X-Requested-With ``` ### 3. jQuery的Ajax跨域 jQuery库提供了方便的API来处理Ajax请求,包括跨域。使用`$.ajax()`或`$.getJSON()`,设置`jsonp`参数为回调函数名,可以实现JSONP...

    ThinkPHP的success并不跳转页面,而是直接输出json字符串的原因.zip解决ThinkPHP的success并不跳转页面,而是直接输出json字符

    在JavaScript中,使用`$.ajax`或者`fetch`等方法发送异步请求时,服务器会根据请求头中的`X-Requested-With`字段来判断是否为AJAX请求。如果设置了`ajax=1`,或者在请求头中设置了`X-Requested-With: XMLHttpRequest...

    php中如何判断一个网页请求是ajax请求还是普通请求

    虽然`HTTP_X_REQUESTED_WITH`头是AJAX请求的常见标志,但并非所有库或所有情况都会设置这个头。因此,为了更健壮的实现,你可能还需要结合其他策略,比如通过检查请求参数、请求URL等来辅助判断。 5. **设计兼容性...

    Ajax跨域详解与代码

    add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; if ($request_method = 'OPTIONS') { add_header '...

Global site tag (gtag.js) - Google Analytics