有没有办法判断请求是否是 Angular (1.1.5) $resource 请求。我非常想为这种类型的请求寻找“Request.IsAjaxRequest()”方法。
我将其视为在覆盖的 AuthorizeAttribute 的 HandleUnauthorizedRequest 中进行查看,如果不是 Ajax 或角度请求,我需要将上下文结果设置为某个 json 或其他内容。
有没有办法判断请求是否是 Angular (1.1.5) $resource 请求。我非常想为这种类型的请求寻找“Request.IsAjaxRequest()”方法。
我将其视为在覆盖的 AuthorizeAttribute 的 HandleUnauthorizedRequest 中进行查看,如果不是 Ajax 或角度请求,我需要将上下文结果设置为某个 json 或其他内容。
我不太了解 MVC3,但您可以为来自 AngularJS 的所有请求设置自定义标头。
然后在服务器端,您只需要获取此标头并根据 Angular 的请求执行您想要的操作。
要在 AngularJS 中使用自定义标头,只需执行以下操作:
angular.module('myModule', [])
.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common["FROM-ANGULAR"] = "true";
}])
要使用 X-Requested-With,您也必须这样做:
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
它不再默认设置,因为社区的很多部分必须删除此标头才能启用 CORS 请求