我正在开发一个移动应用程序,我将使用 Phonegap 进行部署。
现在我可以使用 Drupal 7 服务登录,并且还可以获取会话名称和会话 ID。但我无法注销用户。当我这样做时..我在我的 chrome 控制台上看到了这个问题:406(不可接受:)
我尝试将标头发送为“Cookie”然后“sessionname = sessionid”格式..但这没有用。有人可以建议一种方法。
您需要从 中添加 CSRF 令牌YOUR_SITE/services/session/token
,然后以与添加 相同的方式将其添加到标头中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.");
}
});
这对我有用。
$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');
});