Javascript 本地存储仅在刷新后可访问

Javascript 本地存储仅在刷新后可访问,javascript,html,local-storage,sencha-touch-2,web-storage,Javascript,Html,Local Storage,Sencha Touch 2,Web Storage,我正在使用Sencha Touch 2.0.0.RC开发一个移动web应用程序,但我认为我的问题与此框架无关 以下是工作流程: 启动时,加载app.js,并检查本地存储中是否存在令牌: launch:function(){ if(localStorage.getItem('myToken')){ Ext.create('MyApp.view.Viewport'); } 否则{ Ext.create('MyApp.view.Login'); } } 因为我是第一次加载应用程序,所以找不到令牌,所

我正在使用Sencha Touch 2.0.0.RC开发一个移动web应用程序,但我认为我的问题与此框架无关

以下是工作流程:

启动时,加载app.js,并检查本地存储中是否存在令牌:

launch:function(){
if(localStorage.getItem('myToken')){
Ext.create('MyApp.view.Viewport');
}
否则{
Ext.create('MyApp.view.Login');
}
}
因为我是第一次加载应用程序,所以找不到令牌,所以创建了登录视图

login.js控制器中,submitLoginForm函数获取表单值并向rest API发送ajax请求:

submitLoginForm:function(){
var formValues=this.getLoginForm().getValues();
Ext.Ajax.request({
范围:本,,
网址:'http://mydomain.com/api/login/token',
方法:“POST”,
参数:formValues,
成功:功能(响应){
var result=Ext.JSON.decode(response.responseText);
如果(结果、成功){
setItem('myToken',result.token);
var viewport=Ext.create('MyApp.view.viewport');
this.getLoginForm().setHidden(true);
viewport.show();
}
否则{
Ext.Msg.alert('Error','Bad username或password');
}
},
失败:函数(){
// 
}
});
}
当用户名和密码正确时,将返回一个令牌,我将其存储在localStorage中。 之后,我创建并显示另一个视图(viewport.js),该视图使用令牌访问API:

存储:{
//...
代理:{
//...
网址:'http://mydomain.com/api/controller/function/?token='+localStorage.getItem('myToken')
}
}
此时url如下所示:

http://mydomain.com/api/controller/function/?token=null&...
但当我刷新浏览器时,一切正常,令牌又回来了:

http://mydomain.com/api/controller/function/?token=tokenValue&...

我还可以完全关闭浏览器,再次打开它,然后访问整个应用程序,而无需登录。

您不能只使用内置的localstorage代理吗

然后只需按如下方式设置代理:

proxy: {
  id: 'myproxy',
  type: 'localstorage'
}

然后查询您的存储中的数据。

您不能只使用内置的localstorage代理吗

然后只需按如下方式设置代理:

proxy: {
  id: 'myproxy',
  type: 'localstorage'
}

然后查询您的商店以获取数据。

问题与我对Sencha Touch的误解有关。我在配置中创建了一个存储,它在我描述之前就被调用了。Mitchellismoens确实是个合适的人,他回答得很快,他自己也明白我是在以我的观点创建我的商店

这个问题与我对Sencha Touch的误解有关。我在配置中创建了一个存储,它在我描述之前就被调用了。Mitchellismoens确实是个合适的人,他回答得很快,他自己也明白我是在以我的观点创建我的商店

虽然S.O.不错,但也可以尝试在上发帖。有一个叫Mitchellismoens的家伙,他认识很多sencha(他是主持人),通常回答得很快。是的,我认识那个家伙,他很活跃。我现在把我的问题贴在了那个论坛上。我想我会在这里有更好的运气,因为(在我看来)这与Sencha Touch无关。虽然S.O.很好,也可以尝试在上发帖。有一个叫Mitchellismoens的家伙,他认识很多sencha(他是主持人),通常回答得很快。是的,我认识那个家伙,他很活跃。我现在把我的问题贴在了那个论坛上。我想我在这里会有更好的运气,因为(在我看来)这与Sencha Touch无关。为什么我应该使用这个代理,它意味着几行代码和一个额外的文件,当一行执行任务时,该文件的模型定义具有唯一字段?为什么我应该使用这个代理,它意味着几行代码和一个额外的文件,该文件的模型定义在执行任务时具有唯一字段单行线能完成任务吗?