在这个简化的小提琴中,我试图重新设置 "token" 的值以在后续表单提交中使用,但是尽管设置了值,但在下一次通过时,'token' 仍然设置为 QWERTY 的初始值.
var token = '';
function pollServer(token) {
alert("Calling with token: " + token);
alert("OLD: " + token);
token = "ASDFG"; // new token
alert("NEW: " + token);
}
function onsubmit_action() {
alert("A: " + token);
if (token === '') {
// set the initial token
token = 'QWERTY';
}
alert("B: " + token);
pollServer(token);
event.preventDefault();
}
演示:http: //jsfiddle.net/tUtRH/
警报应该去:
<submit form>
A:
B: QWERTY
Calling with token: QWERTY
OLD: QWERTY
NEW: ASDFG
<submit form>
A: ASDFG
相反,在第二次提交表单后,我得到:
A: QWERTY
任何打在脸上的耳光或泼在我头上的冷水都将不胜感激。(显然,此代码已被剥离以涵盖最低限度的情况,这实际上是一堆获取/设置令牌等的轮询/AJAX 调用。)