今天调了一天的错误,非常郁闷,直到晚上才发现,原来是页面中定义的XMLHttpRequest对象是个全局对象,但有两个ajax调用都引用了它,每隔几分钟就会出现问题,还是莫名其妙的问题,我以为是数据解析有问题或后台问题,调啊调,结果是两个ajax调用,第二个调用了同一个request,也就是覆盖了第一个的,害得第一个偶尔会得到第二个的值,导致解析出错…….
以后每个ajax调用一定不要用全局的变量保存request.而是临时生成,然后将request绑定它的到处理上.
function test(){
var temp_request = createXMLHttpRequest();
deal_change.request = temp_request;
temp_request.onreadystatechange=deal_change;
temp_request.open(“GET”,url,true);
temp_request.setRequestHeader(“If-Modified-Since”,”0″); //不缓存Ajax
temp_request.send(null);
}
function deal_change()
{
var rStr;
try{
if(deal_change.request.readyState==4)//
通过deal_change.request引用调用它的request
{
if(deal_change.request.status==200)
{
rStr = trim(deal_change.request.responseText);
……………….
}}}
切记切记.
当然若使用 框架就不用这么麻烦了. 本文链接http://www.cxybl.com/html/wyzz/JavaScript_Ajax/20120721/32053.html
欢迎大家阅读《ext.ajax.request:ajax调用过程中,千万…_js》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码