JS更改django中的会话时出现问题
Something wrong when session in django is changed by JS
我不确定这是关于django,而是关于javascript和浏览器。
我的观点:
def set_lang(request, lang):
request.session['lang'] = lang
# request.session.modified = True # optional, to be pretty sure
# request.session.save() # the same
return HttpResponse('ok')
在html中,在js:中
$.post('/set_lang', {'lang', 'EN'}); # it change session and works
location.reload()
where while location.reload()django会话被"回滚"到以前的状态。
在chrome上,当我在定位之前在js中添加自己的睡眠方法时(1sec)。加载它有效关于firefox的问题无论如何都存在。
除了会话一,我不使用cookie。我尝试清理浏览器缓存,会话,但没有成功。我可以在不同的浏览器版本上重复这一点。
我有变通办法,但我很好奇发生了什么。
当我从js location.reload()
中删除,然后执行POST/GET请求时,会用正确的会话处理。
set_lang之后的F5 refresh
也始终有效(会话更改正确)。
我比较了location.reload
和F5 refresh
之间的http头,它们是相同的。
看起来location.reload
不允许$.post
$.post(url, data);
// sleep(2000) // own func with timeout works only in chrome for me
location.reload();
我问自己张贴是否有足够的时间发送并在jQuery.post文档中找到解决方案
当我将代码更改为:时
$.post(url, data).done(function(data{window.location.reload();})
它现在在每个浏览器中都可以工作:)
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Web2Py 中的 ajax 和会话变量的问题
- 有关应用程序中的 Cookie 和会话 ASP.net 问题
- 在QuickBlox中传递扩展数据和会话请求时出现问题
- 在JavaScript中获取第二个会话变量时出现问题
- 我在使用Facebook开放图发布操作时遇到问题,因为会话已过期.我该如何解决这个问题
- JS更改django中的会话时出现问题
- 会话超时问题
- Express 3的交叉会话问题
- 会话超时有问题
- PHP会话问题,不是100%的工作时间
- 通过JavaScript赋值给Asp.net标签,然后通过c#会话对象传递时的问题
- JSP会话问题
- 保持用户会话存活问题
- RangeError:无效状态码:0在快速应用程序会话问题
- 在会话存储中保存和显示键和值对时出现问题
- AJAX登录-会话问题
- 我有一个问题与远程服务器的会话变量
- Ajax添加记录与会话id和用户id问题