我正在开发一个移动应用程序,我将使用Phonegap进行部署。
现在我可以使用Drupal 7服务登录,我也获得了会话名称和会话ID。但我无法退出用户。即使我这样做..我在我的Chrome控制台上看到了这个问题:406(不可接受:)
我尝试将标题发送为“Cookie”,然后发送“sessionname = sessionid”格式..但这不起作用。有人可以建议一个方法。
答案 0 :(得分:2)
您需要从YOUR_SITE/services/session/token
添加CSRF令牌,然后按照添加Cookie
的方式将其添加到标题中,例如
'X-CSRF-Token: ' + $token
并确保它是PUT
,这里有一个很好的例子:
相关部分如下所示:
$.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');
});