4

私は AngularJS を初めて使用し、作成したインターセプターと restAPI に問題があります。

インターセプターのコードは次のとおりです。

factory('AuthInterceptor', ['$q', '$location', '$localStorage', function ($q, $location, $localStorage) {
    return {
        'request': function (config) {
            config.headers = config.headers || {};
            if ($localStorage.token) {
                config.headers["Authorization"] = 'Bearer ' + $localStorage.token;
            }
            console.log($localStorage.token);
            console.log(config);
            return config;
        },
        'responseError': function (response) {
            if (response.status === 401 || response.status === 403) {
                $location.path('/login');
            }
            return $q.reject(response);
        }
    };
}]);

作成した残りの API からの呼び出しは次のようになります。

$http.get('/api/producto/', {headers: {'x-access-token': $localStorage.token}})
            .success(function (data) {                    
            })
            .error(function (data) {
                console.log('Error: ' + data);
            });

{headers: {'x-access-token': $localStorage.token}} を $http に送信すると、restapi は問題なく動作しますが、これを削除するとエラー 403 (禁止) で失敗します

これをすべての GET API に追加することにしましたが、POST では期待どおりに動作しません。私の POST API は次のようになります。

var formData = {
        cliente: $scope.newCliente,
        headers: {'x-access-token': $localStorage.token}
    };

    $http.post('/api/cliente', formData)
        .success(function (data) {
            ....
        })
        .error(function (data) {
            console.log('Error: ' + data);
        });

私が間違っていることは何ですか?GET または POST 操作でヘッダーを送信しないようにするには、インターセプターで何を変更する必要がありますか?

4

0 に答える 0