我从http://fromDomain.com获得了类似这样的html,并发布到了http://toDomain.com这是一个rails应用程序。
<html>
<h1>Test Redirect with Post</h1>
<button id="submit" onclick="send_form()">Submit</button>
<script>
function send_form() {
var form = document.createElement("form");
form.setAttribute("method", 'post');
form.setAttribute("action", 'http://todomain.com/someaction');
form.appendChild(addElement('field1', 'field1'));
form.appendChild(addElement('field2', 'field2)');
document.body.appendChild(form);
form.submit();}
function addElement(key, value){
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", value);
return hiddenField;}
</script>
</html>
在rails应用程序中,我正在做这样的事情。
def someaction
if not session[:token]
session[:token] = @self.getsomehash
end
end
问题是在http://todomain.com/someaction页面加载后,如果用户点击浏览器刷新,那么它将重新发布页面并重置会话哈希。看起来我在浏览器发布时会重新发布一个新会话,而不是使用现有会话。
我的假设是对的吗?有没有办法允许刷新并仍然保持值仍然?