jQuery.ajax()
通常发送X-Requested-With
标头,其中XMLHttpRequest
设置为内容。在服务器中(PHP),我通常的测试检测这样的:
$is_ajax = $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest'
在AngularJS,在$routeProvider.when()
常见,你可以从服务器获取模板与templateUrl: '/path/on/server'
。
我的问题是是templateUrl
请求似乎不设置X-Requested-With
头,所以没有办法区分任何其他类型的请求templateUrl
请求。
有没有办法让$routeProvider
发送X-Requested-With
作为XMLHttpRequest
?
参考:
$routeProvider Docs - (搜索
templateUrl
)jQuery jqXHR - 见
jqXHR.setRequestHeader("X-Requested-With", "XMLHttpRequest")
- 采用了棱角分明
更新:我找到了actual commit,其中Angular开发人员删除
X-Requested-With
从$http.get
。不知道为什么他们会这样做?更新:https://github.com/angular/angular.js/issues/1004 - 讨论哪里头被删除。