将值从登录表单传递到仪表板



检索在DART聚合物中输入的用户名的最佳方法是在下一页中读取的登录表单?

登录组件如下 -

@CustomTag('alfresco-login-form')
class LoginFormComponent extends FormElement with Polymer, Observable {
  LoginFormComponent.created() : super.created();
  @observable String username = "";
  @observable String password = "";
  @observable Map loginData = toObservable({
    'username' : '',
    'password' : ''
  });

  @observable String serverResponse = '';
  HttpRequest request;
  void submitForm(Event e, var detail, Node target) {
    e.preventDefault(); // Don't do the default submit.
    request = new HttpRequest();
    request.onReadyStateChange.listen(onData); 
    // POST the data to the server.
    var url = 'http://127.0.0.1/alfresco/service/api/login';
    request.open("POST", url);
    request.send(_loginDataAsJsonData());
  }
  void onData(_) {
    if (request.readyState == HttpRequest.DONE &&
        request.status == 200) {
      // Data saved OK.
      serverResponse = 'Server Sez: ' + request.responseText;
      Map parsedMap = JSON.decode(request.responseText);
      var currentTicket = new Ticket(parsedMap["data"]["ticket"]);
      //keeps the back history button active
      //window.location.assign('dashboard.html');
      //doesn't keep the back history button active
      //doesn't put the originating page in the session history
      window.location.replace('dashboard.html');
    } else if (request.readyState == HttpRequest.DONE &&
        request.status == 0) {
      // Status is 0...most likely the server isn't running.
      serverResponse = 'No server';
    }
  }
  String _loginDataAsJsonData(){
    return JSON.encode(loginData);
  }
}

我需要访问该logindata ['username']&PAGE dashboard.html。

不是真正的答案,而是要发表评论:

您的代码显示您如何将凭据发送到服务器。因此,我以前的评论仍然适合。您不能仅将变量传递到新页面。加载页面时,这就像应用程序重新启动。您可以将重定向的URL中的值传递到cookie中,如果两个页面都从同一域加载,或者您只需从先前存储的服务器中重新加载它们即可。要知道新页面是由您必须使用某些会话处理的同一用户(例如前面提到的会话cookie)要求的。这与飞镖或聚合物无关,这更多的是网络的工作原理。

最新更新