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 文档- (搜索
templateUrl
)jQuery jqXHR - 见
jqXHR.setRequestHeader("X-Requested-With", "XMLHttpRequest")
v1.1.5
通过Google CDN使用 Angular更新:我找到了Angular开发人员
X-Requested-With
从$http.get
. 想知道他们为什么要这样做?更新: https ://github.com/angular/angular.js/issues/1004 - 讨论删除标头的位置。