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 - 讨论删除标头的位置。