http 요청에 CSRF 및 토큰 데이터를 보내려면 어떻게해야합니까?각 http.post 헤더 문제
저는 Angular를 사용하여 json 데이터를 Drupal 서비스 엔드 포인트에 게시하고 있지만 문제가 있습니다. 나는이 노드에 대한 드루팔 서비스 엔드 포인트에 게시하기 위해 노력하고있어 위의 코드를 사용하여
는// drupal post node
$scope.post_node = function(){
console.info('Node post ...');
var promise = $http.post('http://mysite/QuestionsGenerator/angularjs-headless/api/v1/node',
{
"title" : "Node Test",
"body" : "Node body contents test#2",
"type" : "page"
},
{
'Content-type' : 'application/json',
'Accept' : 'application/json',
'X-CSRF-Token' : $cookieStore.get('user_session_token'),
'Cookie' : $cookieStore.get('user_session_cookie')
}
)
.then(
// successCallback,
function(response){
console.log('Post-node working ...');
$log.info(response);
},
// errorCallback
function(response){
console.log('Post-node NOT working ...');
$log.error(response);
}
);
return promise;
}
}]);
생성하는 - 그래서 나는이에 대한 제목, 몸 및 노드 유형를 게시해야 새로운 노드.
은 또한, 나는 X-CSRF 토큰 및 쿠키를 노드가 성공적으로 생성 할 수 있도록 드루팔 내 각도 사용자를 인증 정보를 게시해야합니다.
는 그러나, 나는 다음과 같은 오류가 나타납니다. 사용자가 로그인하지 않은라는 메시지가 다음 Refused to set unsafe header "Cookie"
- 나는뿐만 아니라 존재하는 사용자를 확인할 수 있지만에 기록됩니다
내 네트워크 탭의 더 세부 사항을 보여줍니다 내 토큰 또는 쿠키 세부 정보가 전송되기 시작합니다. 이는 사용자가 인증을 시작하지 않는다고 설명합니다.
내 쿠키 및 토큰 데이터를 보내는 방법을 이해하는 사람이 있습니까?
UPDATE
각도 모든 일에 내 전체 newbness 변명하지만 아래의 코드와 같이 withcredentials에게 라인을 추가하는 시도하십시오 : 그러나, 나는 다음과 같은 오류가
var headlessQS = angular.module('headlessQS', ['ngRoute', 'ngCookies']);
headlessQS.config(function($routeProvider, $httpProvider){
$routeProvider
$httpProvider.defaults.withCredentials = true
.when('/', {
templateUrl: 'pages/main.html',
controller: 'mainController'
})
.when('/wiris', {
templateUrl: 'pages/wiris.html',
controller: 'wirisController'
})
.when('/signin', {
templateUrl: 'pages/signin.html',
controller: 'signinController'
})
});
// Controllers
......
:
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.0-rc.2/$injector/modulerr?p0=headlessQS&p1=…
또한 신탁 코드가 작동하면, 내 토큰 등을 추가하려면 다음 코드에서와 같이 데이터 :
var promise = $http.post('http://mysite/QuestionsGenerator/angularjs-headless/api/v1/node',
{
"title" : "Node Test",
"body" : "Node body contents test#2",
"type" : "page"
},
{
headers: {
'Content-type' : 'application/json',
'Accept' : 'application/json',
'X-CSRF-Token' : $cookieStore.get('user_session_token'),
'Cookie' : $cookieStore.get('user_session_cookie')
}
}
)
.then(
// successCallback
답장을 보내 주셔서 감사합니다. 내 초라함을 용서해 주시길 바랍니다.하지만 내 제안에 귀하의 제안을 통합하는 방법이나 방법을 모릅니다. 저를 믿으십시오, 나는 이제까지 시도하고 성공하지 못했다. 내 방향을 제시해 줄 수 있니? – sisko
기본 AngularJS 파일 (대부분 app.js)에'.config' 블록으로'$ httpProvider' 기본값을 구현할 수 있어야합니다. –
나는 그 방법을 성공없이 시도했다. 원래 질문에 대한 업데이트를 추가하여 내가 의미하는 바를 확인했습니다. 지속적인 도움에 감사드립니다. – sisko