检索在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)要求的。这与飞镖或聚合物无关,这更多的是网络的工作原理。