无法访问前端的烧瓶@login所需的API

时间:2018-12-02 22:09:37

标签: javascript flask http-headers session-cookies

我们有一个由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();

0 个答案:

没有答案