最近遇到一個(gè)jQuery aodata不刷新的問題,研究了一下才解決了。
首先是代碼的問題,我們經(jīng)常會(huì)使用類似下面這樣的代碼來實(shí)現(xiàn)aodata:
$.ajax({ url: 'xxxx', type: 'post', dataType: 'json', data: { //... }, aodata: { //... }, success: function (result) { //... }, error: function () { //... } });
這段代碼看起來沒什么問題,但是如果我們需要在將aodata傳給后端之前對(duì)它進(jìn)行修改,比如加入一些固定的參數(shù),就會(huì)遇到問題。
這時(shí)候我們需要將aodata從原本的對(duì)象中分離出來,單獨(dú)進(jìn)行修改,再將修改后的aodata放回原來的對(duì)象中:
var aodata = { //... }; var data = { //... }; $.ajax({ url: 'xxxx', type: 'post', dataType: 'json', data: data, aodata: aodata, success: function (result) { //... }, error: function () { //... } }); // 修改aodata aodata.test = '123'; // 將修改后的aodata放回原對(duì)象中 var ajaxData = $('body').data('jqXHR'); ajaxData.settings.aodata = aodata; $('body').data('jqXHR', ajaxData);
這樣我們就能成功修改aodata了,解決了aodata不刷新的問題。