13

jQuery.ajax()通常、 set をコンテンツとして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-WithXMLHttpRequest

参照:

4

1 に答える 1

15

FreeNodeの#angularjsZerotに敬意を表します

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

于 2013-07-20T16:36:41.443 に答える