当前位置: 代码迷 >> ASP.NET >> ashx 和Jquery Ajax有关问题
  详细解决方案

ashx 和Jquery Ajax有关问题

热度:5688   发布时间:2013-02-25 00:00:00.0
ashx 和Jquery Ajax问题
jquery代码如下:

JScript code
   $("a[obj=materialUpload]").live("click", function () {        var ss =window.showModalDialog("MaterialUpload.aspx",window, 'dialogWidth:500px;dialogHeight:400px');         if (ss == "0") {            $.ajax({                url: "InputHelper.ashx",                type: "get",                data: "count=1",                success: function (msg) {                    alert(msg);                    browse.show();                    browse.text("浏览(" + msg + ")");                    browse.live("click", function () {                        common.openWindow("View/Process/ShowMaterialList.aspx?materialId=" + browse.attr("materialId") + "&processId=" + browse.attr("processGuid") + "&itemId=" + $("#hfItemGuid").val() + "&customerId=" + $("hfCustomerId").val(), 850, 700);                    });                }            });        }    })


出现的问题比较诡异:
在一个repeater里面有<a>标签,第一次点击时,数据在ashx里面走了一遍,返回;当第二次点击该<a>标签时,ashx文件里面打的断点并没有显示数据有传过来,但jquery的ajax的success属性事件却触发了。奇怪的有两点,1:第二次点击<a>标签时,ashx文件打断点调试,没有走进去,而第一次能进入到ashx文件里;2:第二次点击<a>标签,success绑定的回调函数执行了,但alert(msg)里的msg还是上次(第一次)的msg;

------解决方案--------------------------------------------------------
url 上加上随机数就好了
------解决方案--------------------------------------------------------
 
var url=MaterialUpload.aspx?r=' + Math.random();
var ss =window.showModalDialog(url,window, 'dialogWidth:500px;dialogHeight:400px');

------解决方案--------------------------------------------------------
探讨
引用:
这是什么原因造成的

啊,浏览器缓存搞得鬼

------解决方案--------------------------------------------------------
浏览器缓存了请一次请求
所以可以加上随机 让每次请求url都不一样的
jquery的话 可以
type: "get",
cache:false, 告诉浏览器不要缓存
  相关解决方案