2013-07-20 2 views
12

jQuery.ajax() sendet normalerweise eine X-Requested-With Header mit XMLHttpRequest als Inhalt festgelegt. Auf dem Server (in PHP), habe ich dies in der Regel durch Tests ermitteln:

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

In AngularJS, häufig in $routeProvider.when() gefunden, können Sie eine Vorlage vom Server mit templateUrl: '/path/on/server' erhalten.

Mein Problem ist, dasstemplateUrl Anfragen scheinen nicht gesetzt X-Requested-With Header, so gibt es keine Möglichkeit templateUrl Anfragen von jeder anderen Art von Anfrage zu unterscheiden.

Gibt es eine Möglichkeit $routeProvider zu senden X-Requested-With als XMLHttpRequest?

Referenz:

Antwort

14

Spitze des Hutes zu Zerot in #angularjs

app.config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) { 
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 
    $routeProvider.when('/', { 
     templateUrl: '/path/on/server', 
     controller: 'Ctrl' 
    }); 
}); 

Bearbeiten des FreeNode: genauer sein, das ist die Linie, die Sie irgendwo müssen:

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

Verwandte Themen