jquery中ajax第二次执行无效果,Jquery的ajax第二次不发送请求,请帮忙看一下原因。...

在jQuery中,当`lbtnStop_Click`函数第二次执行时,AJAX请求`AjaxFinishDataService.ashx`未发送。问题可能与浏览器缓存有关。设置`cache: false`可防止使用缓存,或者在URL后添加随机数防止相同URL的缓存。这通常是由于jQuery的内部缓存机制,在某些情况下,特别是IE浏览器中,可能需要手动处理。解决方法包括在URL中附加时间戳以强制每次请求都是新的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function lbtnStop_Click(operateType) {

var rows = grid.getSelecteds();

var l = rows.length;

if (l == 0) {

AlertErrorMessage("x0001");

}

else {

var s = "";

for (var i = 0; i 

var row = rows[i];

s += row.ID;

if (i != l - 1)

s += "|";

};

$.ajax({

url: "/Controls/MiniUI/Data/AjaxFinishDataService.ashx",

Type: "post",

data: {

ids: s,

operateType: operateType,

bllclassName: "Sale.Sale_QuotationSheetDetail",

finishInMaster: false

},

success: function (text) {

if (text == "True") {

alert("操作成功!");

grid.reload();

}

else

alert(text);

},

error: function (jqXHR, textStatus, errorThrown) {

alert(jqXHR.responseText);

}

});

}

}

在首次执行的时候,/Controls/MiniUI/Data/AjaxFinishDataService.ashx页面可以接收到请求,但 lbtnStop_Click方法第二次执行的时候, AjaxFinishDataService.ashx页面就没有接收到请求了,请问大家这个是怎么回事呢?

----------------------------------------------------------------

cache:false

如果请求相同的URL ,浏览器就会去取缓存

$.ajax({

type: "POST",

url: "some.php",

cache:false,

success: function(msg){

alert( "Data Saved: " + msg );

}

});

--------------------------------------------------------

在 /Controls/MiniUI/Data/AjaxFinishDataService.ashx  加一个随机数

/Controls/MiniUI/Data/AjaxFinishDataService.ashx?t=Math.random()

-----------------------------------------------------------

所以一般url后面都会加一个随时会变的参数吗?

像这样?

&rand=" + new Date().toString()

------------------------------------------------------

http://www.cnblogs.com/jianjialin/archive/2009/07/01/1514475.html

跟浏览器客户端cache并没有直接的关系,不要仅仅从浏览器角度去猜这个原因。它就是jQuery内部另外规定的cache机制!

通常只有在ie中才有关于“无缘无故就进行浏览器客户端缓存”的bug。在其它大品牌的浏览器中,似乎很少有类似bug。我几乎只在ie浏览器中才需要手动“删除缓存”操作。

正常情况下,并不会无缘无故“浏览器客户端缓存”。除非你的页面设计有bug,从而发送了错误的head给浏览器端。

jQuery的这个,会自动为请求(但是只是针对个别请求,而不是全部)加入"={timestamp}"这类时间戳。这是不管你是否发送了错误的head给浏览器端,也都会加入这个时间戳。

但是 ajaxSetting 中 cache 的默认值是true,也就是并不加入这个时间戳。用true做为默认值,就足以说明,正常情况下是不需要考虑这个什么客户端缓存的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值