2013-07-20 12 views
12

jQuery.ajax()は通常XMLHttpRequestのヘッダーをコンテンツとして設定します。 (PHPで)サーバーでは、私は通常のテストでこれを検出:AngularJS

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

、一般$routeProvider.when()で見つかった、あなたはtemplateUrl: '/path/on/server'で、サーバからテンプレートを取得することができます。

私の問題はtemplateUrl要求がないがX-Requested-Withヘッダーを設定ように見えるということので、リクエストの他のタイプからtemplateUrlの要求を区別するための方法はありません。

$routeProviderX-Requested-WithXMLHttpRequestとして送信する方法はありますか?

参考:

答えて

14

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' 
    }); 
}); 

編集中Zerotに帽子のヒント:具体的には、これはあなたがどこかに必要なラインです:

$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';