检查.NET MVC中的AngularJS $资源请求服务器端

Bre*_*dán 13 request asp.net-mvc-3 angularjs

有没有办法判断请求是否是Angular(1.1.5)$资源请求.我正在为这种类型的请求寻找"Request.IsAjaxRequest()"方法.

我正在查看这个在HandleUnauthorizedRequest中重写AuthorizeAttribute我需要将上下文结果设置为某些json(如果是Ajax或角度请求或其他内容).

Tho*_*ons 36

我不太清楚MVC3,但您可以为AngularJS的所有请求设置自定义标头.

然后在服务器端,您只需要获取此标头,并根据角度请求执行您想要的操作.

要在AngularJS中拥有自定义标头,只需执行以下操作:

angular.module('myModule', [])

    .config(['$httpProvider', function($httpProvider) {

        $httpProvider.defaults.headers.common["FROM-ANGULAR"] = "true";

    }])
Run Code Online (Sandbox Code Playgroud)

使用X-Requested-With你也必须这样做:

$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
Run Code Online (Sandbox Code Playgroud)

它不再默认设置,因为社区的很多部分必须删除此标头以启用CORS请求