【问题标题】:how to detect if a request is ajax or normal on server side如何在服务器端检测请求是 ajax 还是正常的
【发布时间】:2011-01-26 00:40:45
【问题描述】:

我使用 jquery 来发出 ajax 请求。是否可以在服务器端检测请求是ajax请求还是正常请求? jquery 是否添加任何输入变量或标头来实现这一点?

谢谢

【问题讨论】:

    标签: ajax jquery


    【解决方案1】:

    当请求的 ajax 标头称为 X-Requested-With 且值为 XMLHttpRequest 时,jQuery 在请求上添加一个附加标头。检查请求中的此标头。

    或者,使用.ajaxSetup 设置您想要的任何标题,如下所示:

    $.ajaxSetup({
      headers: {"X-My-Header":"Bob"}
    });
    

    【讨论】:

    • 仅供参考,jQuery 确实 not 为 CORS AJAX 请求设置 X-Requested-With 标头(请参阅 bugs.jquery.com/ticket/8423)。它已从 CORS 请求中删除,以防止浏览器发送不必要的预检 OPTIONS 请求。
    【解决方案2】:

    如果您使用的是 asp.net mvc,您的控制器将有一个属性 IsAjaxRequest 只需检查此属性

    if (IsAjaxRequest) 
    {
       // do your stuff and render ajax view
    }
    

    【讨论】:

    • 我不确定这实际上是在控制器上吗?我认为它是请求对象的扩展方法。即 Request.IsAjaxRequest()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    相关资源
    最近更新 更多