【发布时间】:2016-01-13 22:05:52
【问题描述】:
我正在使用 ASP.NET MVC 和 AngularJS 开发示例应用程序。
在服务器端代码中,我写了一个Action过滤属性,其中我需要检查请求是普通请求(浏览器)还是AJAX请求。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if ( filterContext.HttpContext.Request.IsAjaxRequest())
{
}
}
如果使用 $http Angular 服务发出 AJAX 请求,上述代码 sn-p "IsAjaxRequest()" 中提到的方法不会返回 TRUE。
我观察到请求没有 X-Requested-With header ,即使添加 header 也没有解决请求。
注意:这不是 CORS 调用。
所以我的问题。
filterContext.HttpContext.Request.IsAjaxRequest()如何判断请求是否为AJAX?
我可以检查请求标头(是否有特定标头)并确定请求是否为 AJAX。这是正确且唯一的方法吗?
【问题讨论】:
-
仅供参考,它是开源的,您可以查看实际实现:aspnetwebstack.codeplex.com/SourceControl/latest#src/…
-
@Keith Rousseau 提供的链接将来应该对我有所帮助..
标签: ajax angularjs asp.net-mvc