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
?
引用:
templateUrl
) jqXHR.setRequestHeader("X-Requested-With", "XMLHttpRequest")
v1.1.5
通过 Google CDN X-Requested-With
来自 $http.get
.想知道他们为什么要这样做? 最佳答案
尖顶到 Zerot 在 FreeNode 的 #angularjs
app.config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) {
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
$routeProvider.when('/', {
templateUrl: '/path/on/server',
controller: 'Ctrl'
});
});
编辑:更具体地说,这是您在某处需要的行:
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
关于ajax - $routeProvider : templateUrl requests with X-Requested-With header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17760096/