有没有办法判断一个请求是否为Angular(1.1.5)$ resource请求。我几乎在寻找这种请求的“ Request.IsAjaxRequest()”方法。
我正在寻找这,就像重写的AuthorizeAttribute的HandleUnauthorizedRequest中一样,如果需要Ajax或angular请求,则需要将上下文结果设置为某些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请求