2

我正在开发一个移动应用程序,我将使用 Phonegap 进行部署。

现在我可以使用 Drupal 7 服务登录,并且还可以获取会话名称和会话 ID。但我无法注销用户。当我这样做时..我在我的 chrome 控制台上看到了这个问题: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 回答