注销用户服务无法正常工作

时间:2013-09-15 14:32:05

标签: service drupal-7

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

现在我可以使用Drupal 7服务登录,我也获得了会话名称和会话ID。但我无法退出用户。即使我这样做..我在我的Chrome控制台上看到了这个问题:406(不可接受:)

我尝试将标题发送为“Cookie”,然后发送“sessionname = sessionid”格式..但这不起作用。有人可以建议一个方法。

2 个答案:

答案 0 :(得分:2)

您需要从YOUR_SITE/services/session/token添加CSRF令牌,然后按照添加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.");
   }
});

答案 1 :(得分: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');
});