Передача значений из формы входа в панель управления

Каков наилучший способ получить имя пользователя, введенное в форме входа в полимер 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'] и parsedMap["data"]["ticket"], чтобы они были доступны на странице dashboard.html.


person Sujay Pillai    schedule 07.03.2014    source источник
comment
Я думаю, вы должны объяснить немного больше, что вы пытаетесь сделать. Почему вы перенаправляете. Что выполняется перед перенаправлением. Из предложенной вами информации я бы предложил отправить данные на сервер при отправке формы. Идентифицируйте пользователя с помощью идентификатора сеанса (например, cookie) и получите данные с сервера на новой странице.   -  person Günter Zöchbauer    schedule 07.03.2014
comment
@GünterZöchbauer Я отредактировал вопрос в соответствии с вашим запросом. Дайте мне знать, если вам нужна дополнительная информация с моей стороны.   -  person Sujay Pillai    schedule 08.03.2014


Ответы (1)


На самом деле не ответ, а долго ждать комментарий:

Ваш код показывает, как вы отправляете учетные данные на сервер. Так что мой предыдущий комментарий по-прежнему актуален. Вы не можете просто передать переменные на новую страницу. Когда страница загружается, это похоже на перезапуск приложения. Вы можете передавать значения в URL-адресе, на который вы перенаправляетесь, в виде файлов cookie, если обе страницы загружаются из одного и того же домена, или вы можете просто перезагрузить их с сервера, на котором вы их ранее сохранили. Чтобы узнать, что новая страница была запрошена тем же пользователем, вы должны использовать некоторую обработку сеанса (например, ранее упомянутый файл cookie сеанса). Это не имеет ничего общего с Dart или Polymer, это больше о том, как работает Интернет.

person Günter Zöchbauer    schedule 08.03.2014