网站制作学习网JS脚本→正文:ajax提交大数据文章
字体:

ajax提交大数据文章

JS脚本 2012/5/22 9:50:31  点击:不统计

原载于:原文章%77w%77%2Ef%6F%72%61%73%70%2E%63n

在之前的文章中说过ajax,写过详细的步骤,http://www.forasp.cn/html/1725.html
上面的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 原文是网站制作学习网的FoAsP.cn
//主要是上面的这句 “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的&号规避。


·上一篇:淘宝JavaScript 编码风格规范 >>    ·下一篇:jquery操作select multiple option >>
推荐文章
最新文章