$ routeProvider:带有X-Requested-With标头的templateUrl请求

时间:2013-07-20 07:55:26

标签: ajax angularjs route-provider

jQuery.ajax()通常会将X-Requested-With标头设置为XMLHttpRequest作为内容。在服务器上(在PHP中),我通常通过测试来检测:

$is_ajax = $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest'

$routeProvider.when()中常见的AngularJS,您可以使用templateUrl: '/path/on/server'从服务器获取模板。

我的问题 templateUrl请求似乎设置X-Requested-With标头,因此无法区分templateUrl个请求来自任何其他类型的请求。

有没有办法让$routeProviderX-Requested-With作为XMLHttpRequest发送?

参考:

1 个答案:

答案 0 :(得分:14)

FreeNode的#angularjs

中的 Zerot 的提示
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';

相关问题