httpリクエストでCSRFとトークンのデータを送信するにはどうすればよいですか?Angular http.postヘッダーの問題
私は、Drupalサービスエンドポイントにjsonデータを投稿するためにAngularを使用していますが、問題が発生しています。
上記のコードを使用して// 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;
}
}]);
、私が作成するノードのためのDrupalのサービスのエンドポイントに投稿しようとしている - 私はのためにタイトル、体とノードタイプにを掲示しなければなりません新しいノード。また
、私はX-CSRFトークンとクッキーノードが正常に作成できるようにDrupalのと私のアンギュラユーザーを認証する情報を掲示しなければなりません。
しかし、私は次のエラーが表示されます。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