我们有一个由python flask实现的服务器,它是RESTful的。由于它是RESTful,因此我们必须使用API开发前端页面。 问题是,我们的服务器使用flask的内置Login_manager和会话模块来管理客户端会话。当我尝试将请求发送到@login所需的API时,服务器将不允许我。根据我的搜索,我必须以某种方式将前端的会话cookie与我的请求一起发送到服务器。那么我应该怎么做(如果这是解决方案)?我应该在我的javascript登录名和API提取代码中添加什么?
JS登录:
var request = new XMLHttpRequest();
var url = 'http://127.0.0.1:5000/api/login';
var user = {
'email': email,
'password': password
};
request.open('POST', url, true);
request.setRequestHeader("Content-Type", "application/json");
request.onload = function() {
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
var resp = JSON.parse(this.response);
if (resp.status === "OK") {
sessionStorage.setItem('user', JSON.stringify(resp.user));
document.cookie = "user_id="+resp.user.id;
window.location.replace('app.html');
} else {
alert("User info not correct");
}
} else {
alert("Request not made");
}
}
request.send(JSON.stringify(user));
然后,脚本不起作用,因为/ showApps API是@login必需的:
var request = new XMLHttpRequest();
var url = 'http://127.0.0.1:5000/api/showApps';
request.open('GET', url, true);
request.onload = function(e) {
//manage data
}
request.send();