IE6 jQuery.ajax 不能访问服务器(未执行URL指定的java处理类)

function createDataFile()
{
   //根据DOWN+14位随机数生成下载Id
   var downFileId="DOWN"+RndNum(14);
   downloadFileId  = downFileId;
   createFilePars += "&downFileId="+downloadFileId;
   
   jQuery.ajax({type:"get", cache:false, dataType:"json", contentType:"application/x-www-form-urlencoded:charset=UTF-8",
        data: createFilePars, url:"<%=webpath%>/com.linkage.bi.powershow.util.QueryLogicUtil.createFilterDataFile.db(portal).invoke",
        success:function (data)
          {
        //生成完成后 将createFileComplete设为true
           createFileComplete = true;
           //生成完成后将data参数赋给全局objData 防止生成文件在转离线前生成
           objData=data;
           //isOffline如没有离线操作 正常显示  否则不做处理
           if(!isOffline)
           {
            finishCreate(data);
              }
             } 
    });
}

 

在IE8下可以正常执行,在IE6、IE7下有时候可以、有时候不可以,想来想去以为jQuery.ajax不支持IE6版本有问题,苦恼!

后来静下心来想了各种可能,最后确定可能和传递的参数长度有关系,经过验证果然。主要还是在于get和post方式在传递参数的长度方面存在区别,修改如下:

function createDataFile()
{
   //根据DOWN+14位随机数生成下载Id
   var downFileId="DOWN"+RndNum(14);
   downloadFileId  = downFileId;
   createFilePars += "&downFileId="+downloadFileId;
   
   jQuery.ajax({type:"post", cache:false, dataType:"json", 
     //contentType:"application/x-www-form-urlencoded:charset=UTF-8",
        data: createFilePars, url:"<%=webpath%>/com.linkage.bi.powershow.util.QueryLogicUtil.createFilterDataFile.db(portal).invoke",
        beforeSend:function(xhr, settings)
        {
            // 如果是postData方式传参,则需要设置请求参数
            xhr.setRequestHeader("ajax-encoding", "YES");
        },
        success:function (data)
          {
        //生成完成后 将createFileComplete设为true
           createFileComplete = true;
           //生成完成后将data参数赋给全局objData 防止生成文件在转离线前生成
           objData=data;
           //isOffline如没有离线操作 正常显示  否则不做处理
           if(!isOffline)
           {
            finishCreate(data);
              }
             } 
    });
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值