gpt4 book ai didi

ajax - 识别 ASP.NET MVC 代码中的 Angular js AJAX 调用

转载 作者:行者123 更新时间:2023-12-03 23:31:55 24 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 和 AngularJS 开发一个示例应用程序。

在服务器端代码中,我编写了一个 Action 过滤器属性,我需要检查请求是普通请求(浏览器)还是 AJAX 请求。

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if ( filterContext.HttpContext.Request.IsAjaxRequest())
{

}
}

如果使用 $http Angular 服务发出 AJAX 请求,上述代码片段“IsAjaxRequest()”中提到的方法不会返回 TRUE。

我观察到请求没有 X-Requested-With header ,即使添加 header 也没有解决请求。

注意:这不是 CORS 调用。

所以我的问题。
  • filterContext.HttpContext.Request.IsAjaxRequest() 如何判断请求是否为AJAX?
  • 我可以检查请求头(是否有特定的头)并决定请求是否是 AJAX。这是正确且唯一的方法吗?
  • 最佳答案

    它通过查看是否X-Requested-With来决定 header 是否存在。
    您可以添加 X-Request-With手动到 $http服务。

    个人要求

    $http.get('/controller/action', {
    headers: {
    'X-Requested-With': 'XMLHttpRequest'
    }
    });

    对于每个请求
    app.config(['$httpProvider', function ($httpProvider) {
    $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
    }]);

    您可以从 Angular 中了解为什么它会丢失

    关于ajax - 识别 ASP.NET MVC 代码中的 Angular js AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33148695/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com