0
我正在一個Django的角度應用程序,並需要做出這等CSRF令牌在所有角AJAX後或將請求。我使用ngCookies,但是當我嘗試分配餅乾CSRF令牌的所有角度支柱頭,它給我的錯誤:
TypeError: Cannot read property 'csrftoken' of undefined
$的CookieStore也是不確定的,並使用獲得$方法餅乾不工作。我正在加載適合我角度版本的angular-cookies的正確腳本,並且我沒有收到有關ngCookies本身的任何錯誤,所以我不確定它可能是什麼?
(function() {
'use strict';
Config.$inject = ["$locationProvider", "$stateProvider", "$urlRouterProvider", "$httpProvider"];
angular
.module('app.guest', [
'app.common',
'app.core',
'app.repo',
'ui.bootstrap',
'ngCookies'
])
.config(Config);
.run(['$cookies'], function ($rootScope, $http, $cookies) {
// set the CSRF token here
$http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken;
})
/** ngInject */
function Config($locationProvider, $stateProvider, $urlRouterProvider, $httpProvider, $cookies) {
broadcastReady.$inject = ["CommonService", "CommonEvents"];
$locationProvider.html5Mode(true);
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
$httpProvider.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken;
控制檯
vendor.js:12275 Uncaught Error: [$injector:modulerr] Failed to instantiate module app.guest due to:
TypeError: Cannot read property 'csrftoken' of undefined
似乎並沒有工作。我猜你不能將服務注入到模塊配置中,你必須將其注入到模塊運行塊中。儘管如此,它仍然是未定義的。 – JBT
啊我不知道你正在運行一個'配置()'和你想做什麼裏面加上'X-CSRFToken'到您的文章標題。在這種情況下,設置'xsrfCookeName'和'xsrfHeaderName'應該足夠了,你不需要明確設置在'headers.post' –
AHHHH cookie的,所以當我設置$ httpProvider.defaults.xsrfHeaderName =「X-CSRFToken」;那已經將cookie值設置爲任何郵件頭? – JBT