jquery ajax 奇怪问题
发布网友
发布时间:2022-04-25 15:28
我来回答
共4个回答
热心网友
时间:2022-04-25 04:32
Ajax是异步请求,所以肯定是Ajax的回调函数中的alert比外面的执行的晚。无论data是否为空,在Ajax外边alert(jsonStr)铁定是空。
而在回调函数中,不应该直接调用data,而是调用它的responseText属性,
把jsonStr = data改成
jsonStr = data.responseText;就行了。
建议在这之前先判断data是否正确获取了,
if(data==null)alert('从服务器回去数据失败,有可能是服务器端代码错误');
如果还没解决你的问题,可以加我百度HI账号。
热心网友
时间:2022-04-25 05:50
这是浏览器缓存导致的,第二次请求一样地址的时候,会直接读取缓存而不会再次进行请求.
解决方法:
1.将Ajax操作的方式从GET变成POST
2.或者在URL后面附上一个随机数,禁止掉浏览器缓存.
热心网友
时间:2022-04-25 07:24
人家都说了,是缓存问题,第二次你得到的是本地缓存中的页面,加了参数(每次都变),ie认为这不是同一个请求,就不再从缓存里取
第二种:
$.post("../ASHX/GYSManager.ashx",{ lid: code, type: "b" },function (data) {
$("#txt_bh").val(data.C_GZBH),
$("#txt_name").val(data.C_DWMC);
})
post:ie6好像也有缓存问题,ie8没有
热心网友
时间:2022-04-25 09:16
$.ajax({
dataType: "json",
url: "../ASHX/GYSManager.ashx",
cache: false,
data: { lid: code, type: "b" },//code是数据表的主键
success: function (data) {
$("#txt_bh").val(data.C_GZBH),
$("#txt_name").val(data.C_DWMC);
}
});
加 cache: false,
试试