13

有没有办法判断请求是否是 Angular (1.1.5) $resource 请求。我非常想为这种类型的请求寻找“Request.IsAjaxRequest()”方法。

我将其视为在覆盖的 AuthorizeAttribute 的 HandleUnauthorizedRequest 中进行查看,如果不是 Ajax 或角度请求,我需要将上下文结果设置为某个 json 或其他内容。

4

1 回答 1

36

我不太了解 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 请求

于 2013-09-25T09:52:23.560 回答