如何从jQuery的ajaxSetup获取当前值
我有一个页面,根据用户的请求,打开一个对话框,并使用jQuery的load()方法将外部文件加载到其中。
外部文件包含指向脚本的链接(它也可以作为独立页面工作),这很好,只有jQuery强制加载这些脚本(通过添加时间戳),即使它们已经被加载。
我需要告诉jQuery在看到这些脚本时允许缓存。 错误报告的答案建议使用
$.ajaxSetup({ cache: true })
…它确实有效,但更改了所有未来AJAX请求的设置。 有没有办法做这样的事情:
// Get current setting - code not valid but is what I want var defaultCache = $.ajaxSetup("cache"); $.ajaxSetup({cache:true}); // Now set it to what I want // do stuff… $.ajaxSetup({cache:defaultCache}); // Set it back to the default
你可以这样做:
$.ajaxSetup()['cache']
你可以用这个:
$.ajaxSettings['cache']
// Save current global ajax setup $.cachedAjaxSetup = $.extend(true, {}, $.ajaxSetup()); // change global ajax setup $.ajaxSetup({ headers : { "Authorization": 123 } }); // revert back to saved ajax setup $.ajaxSetup( $.cachedAjaxSetup );
(令人讨厌的)问题是,对象将被合并,因此对于上面的示例, headers
设置将保留,因为它在原始对象上不存在。
如果您知道添加了哪些属性,则可以解决此问题,将其缓存并手动删除它们,如delete $.ajaxSettings.headers
,然后在需要再次设置时将其添加回来。 脏,但它的工作..