ajax提交大数据文章
2014-08-13来源:易贤网

上面的ajax写的是GET方式提交的异步内容,当遇到大数据的情况下,会出现url超长,或者当url的内容出现“&”时,则会按照url的链接符号传输,会出现截断。

下面是ajax用POST的形式进行提交,在提交大数据的内容出现"&",不会出现错误或者数据截断。

function GetXmlHttpObject()

{

  var xmlHttp=null;

  try{ // Firefox, Opera 8.0+, Safari

    xmlHttp=new XMLHttpRequest();

    }

  catch (e){

    // Internet Explorer

    try{

      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

      }catch (e){

      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

      }

    }

  return xmlHttp;

}

function saveHint()

{ xmlHttp=GetXmlHttpObject()  

  if (xmlHttp==null){

    alert ("您的浏览器不支持AJAX!");

    return;

   }

var url="forasp.cn.save.php";

data="p="+encodeURIComponent(document.getElementById('v').value);//定义参数p 

//主要是上面的这句 “encodeURIComponent”,设置将内容进行转码,这个非常重要。

data=data+"&sid="+Math.random();//加上随机码,防止缓存

xmlHttp.open("POST",url,true);

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

xmlHttp.onreadystatechange=stateChanged;

xmlHttp.send(data);//将数据进行post提交

}

function stateChanged() 

  if (xmlHttp.readyState==4&&xmlHttp.status == 200)

  { 

  document.getElementById("v").value=xmlHttp.responseText;//获取返回值,并给对象v

  }

}

接受页面通过进行传统的接受即可,获取前面的参数p

比如php  $_POST['p']

asp  request.form('p')

这样就可以完成大数据量的POST提交,并且能够自动转码进行url的&号规避。

更多信息请查看IT技术专栏

推荐信息