我正在使用the jQuery fileupload plugin并将其配置为:
jQuery(document).ready(function() {
jQuery("#fileupload").fileupload({
dataType: "json",
url: "ajax_handler.php?globalVar=" + globalVar,
send: function (e, data) {
},
done: function (e, data) {
}
});
....
globalVar
是(等待它)一个全局变量。
问题是,如果我更改globalVar
的值然后执行文件上传(使用jQuery文件上传插件,这是AJAX,以便页面不会更改),请求的URL make具有原始globalVar
值(首次加载页面时的值)。
为什么会这样?
答案 0 :(得分:2)
创建文件上载窗口小部件时,您将向其传递配置对象。该对象具有许多属性,其中包括url
。
在创建对象时评估属性值(在$(document).ready()
中创建文件上载小部件时)。自分配的值以来,对象不知道globalVar
变量:
"ajax_handler.php?globalVar=" + globalVar
计算为一个简单的字符串(你没有将它传递给globalVar
或类似的东西)。如果您将函数分配给引用url
的{{1}}属性(我不知道文件上传插件是否支持此功能),那么您似乎期望的行为才会发生。 / p>
因此,即使您稍后更改globalVar
,文件上传小部件的网址配置选项也将保持不变。如果要更改它,则需要再次明确指定它。
答案 1 :(得分:0)
如果您希望变量值从一个页面持久存储到另一个页面,则必须将该值存储在某个位置,然后从另一个页面检索它。 Javascript变量是页面的本地变量,因此每次进入新页面时都会清除整个javascript状态。存储/检索变量的选项是:
如果您不需要将它存储在服务器上,前两个更简单。服务器的优点是它甚至可以从其他计算机上获得。 Cookie和LocalStorage仅在该特定计算机上可用。