首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查请求是否为ajax代码- ASP.NET Webforms

如何检查请求是否为ajax代码- ASP.NET Webforms
EN

Stack Overflow用户
提问于 2010-12-09 06:03:59
回答 6查看 24.1K关注 0票数 28

我尝试过Request.IsAjaxRequest,但在WebForms中不存在。我正在进行JQuery ajax调用。如何在C#中检查这是否是ajax请求?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-12-09 06:58:01

您可以创建自己的扩展方法,就像MVC code中的扩展方法一样

例如。

代码语言:javascript
运行
复制
public static bool IsAjaxRequest(this HttpRequest request)
{
    if (request == null)
    {
        throw new ArgumentNullException("request");
    }

    return (request["X-Requested-With"] == "XMLHttpRequest") || ((request.Headers != null) && (request.Headers["X-Requested-With"] == "XMLHttpRequest"));
}

HTHs,

查尔斯

ajax编辑:实际上回调请求也是请求,

代码语言:javascript
运行
复制
    public static bool IsAjaxRequest(this HttpRequest request)
    {
        if (request == null)
        {
            throw new ArgumentNullException("request");
        }
        var context = HttpContext.Current;
        var isCallbackRequest = false;// callback requests are ajax requests
        if (context != null && context.CurrentHandler != null && context.CurrentHandler is System.Web.UI.Page)
        {
            isCallbackRequest = ((System.Web.UI.Page)context.CurrentHandler).IsCallback;
        }
        return isCallbackRequest || (request["X-Requested-With"] == "XMLHttpRequest") || (request.Headers["X-Requested-With"] == "XMLHttpRequest");
    }
票数 50
EN

Stack Overflow用户

发布于 2010-12-09 06:12:54

尝试检查ScriptManager IsInAsyncPostBack

代码语言:javascript
运行
复制
ScriptManager.GetCurrent(Page).IsInAsyncPostBack
票数 5
EN

Stack Overflow用户

发布于 2010-12-09 06:10:06

通常,您将需要测试X-Requested-With头,确保它的值为“XMLHttpRequest”。我(目前)还不是C#开发人员,但在谷歌上快速搜索会发现在C#中是这样的:

代码语言:javascript
运行
复制
Request.Headers["X-Requested-With"] == "XMLHttpRequest";
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4392836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档