2

Phonegap を使用して展開するモバイル アプリに取り組んでいます。

Drupal 7 サービスを使用してログインできるようになり、セッション名とセッション ID も取得しています。しかし、ユーザーをログアウトできません。私がそれをしているときでも..クロムコンソールでこの問題が表示されます:406(受け入れられません:)

ヘッダーを「Cookie」、次に「sessionname = sessionid」形式で送信しようとしましたが、うまくいきませんでした。誰かが方法を提案できますか。

4

2 に答える 2

2

から CSRF トークンを追加し、 をYOUR_SITE/services/session/token追加したのと同じ方法でヘッダーに追加する必要がありCookieます。

'X-CSRF-Token: ' + $token

そして、それがPUTであることを確認してください。ここに良い例があります:

http://pastebin.com/N35SN7Xj

関連セクションは次のようになります。

$.ajax({
   url: "http://your_url/endpoint/user/logout.json",
   type: 'post',
   dataType: 'json',
       beforeSend: function (request) {
      request.setRequestHeader("X-CSRF-Token", token);
    },
   error: function (jqXHR, textStatus, errorThrown) {
     alert('Failed to logout');
     alert(JSON.stringify(jqXHR));
     alert(JSON.stringify(textStatus));
     alert(JSON.stringify(errorThrown));
   },
   success: function (data) {
     alert("You have been logged out.");
   }
});
于 2014-01-03T17:08:45.753 に答える
0

これは私にとってはうまくいきます。

$http({
    method: 'POST',
    url: drupal_instance + api_endpoint + 'user/logout',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': 'application/json',
        'X-CSRF-Token': user.token
    }
})
.success(function (data, status, headers, config) {
    alert('Success');
})
.error(function (data, status, headers, config) {
    alert('Error');
});
于 2016-04-20T13:14:04.727 に答える