ajax的get和post请求方式_第1页
ajax的get和post请求方式_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 4/4ajax的get和post请求方式 Ajax的GET和POST请求方式(1) 这个表单包含了一个操作(Operator)的数据,而这个操作一定是属于某个目录(Dir),因此需要一个下拉列表来选择操作所属的目录。 以上面这个表单的添加功能为例,试图将表单的数据通过调用addOperator()函数,将数据传送到JavaScript中,然后拼接出URL,进行Ajax的异步请求调用。GET请求方式下面是以GET方式异步请求Action。首先需要创建一个XMLHttpRequest对象,调用下面的函数:function createXMLHttp() if (typeof XMLHttpReq

2、uest != undefined) return new XMLHttpRequest(); else if (window.ActiveXObject) var aVersions = MSXML2.XMLHttp.5.0, MSXML2.XMLHttp.4.0, MSXML2.XMLHttp.3.0, MSXML2.XMLHttp, Microsoft.XMLHttp; for (var i = 0; i aVersions.length; i+) try return new ActiveXObject(aVersionsi); catch (e) alert(error); 接着实现

3、addOperator()函数:var xmlHttp =null;function addOperator() var addOperatorId = document.getElementById(addOperatorId).value;var addOperatorName = document.getElementById(addOperatorName).value;var addOperatorType = document.getElementById(addOperatorType).value;var addOperatorClsName = document.getEle

4、mentById(addOperatorClsName).value;var addOperatorURL = document.getElementById(addOperatorURL).value;var dirId = parseInt(get(dir),10); / 获取id为dir的select下拉列表中 被选中的项,get()函数在后面有实现 / 验证表单if( (addOperatorId.replace(/(s*)|(s*$)/g, ) = ) | (addOperatorName.replace(/(s*)|(s*$)/g, ) = ) | (addOperatorName

5、.replace(/(s*)|(s*$)/g, ) = ) | (addOperatorType.replace(/(s*)|(s*$)/g, ) = ) | (addOperatorClsName.replace(/(s*)|(s*$)/g, ) = ) | (addOperatorURL.replace(/(s*)|(s*$)/g, ) = ) | (dirId = 0) ) document.getElementById(tipsInfo).style.height = 25px; document.getElementById(tipsInfo).innerText = 表单数据不完整

6、,不能添加!; return false; if(isNaN(addOperatorId) document.getElementById(tipsInfo).style.height = 25px; document.getElementById(tipsInfo).innerText = 操作ID必须是数字!; return false; / 拼接URLvar url = if(xmlHttp = null) xmlHttp = createXMLHttp(); xmlHttp.open(GET, manageOperator.do?method=addOperator + encodeU

7、RI(encodeURI(url), true);xmlHttp.onreadystatechange = function () if (xmlHttp.readyState = 4) if (xmlHttp.status = 200) document.getElementById(tipsInfo).style.height = 25px; document.getElementById(tipsInfo).innerText = 添加操作成功!; ;xmlHttp.send(null);其中,get()函数如下所示:function get(selectId) var select =

8、 document.getElementById(selectId);var options = select.getElementsByTagName(option);var id = null;for(var i=0;ioptions.length;i+) if(optionsi.selected) id = optionsi.value; break; return id;说明:提取表单中的数据,拼接好url,使用GET方式请求:xmlHttp.open(GET, manageOperator.do?method=addOperator + encodeURI(encodeURI(url

9、), true);这里,使用encodeURI()方式对url实现两次编码,因为表单数据有中文字符,发送到Action中以后还要对其进行解码操作。如果假设operatorName为中文字符,例如:String operatorName = http:/./doc/4a126f360b4c2e3f5727630b.html .URLDecoder(request.getParameter(operatorName),UTF-8);这样,才能将encodeURI(encodeURI(url)中的中文字符解码,不出现乱码问题。因为使用GET请求,所以不需要通过send()函数发送数据,如下:xmlH

10、ttp.send(null);POST请求方式但是,对于POST方式,就不同了,代码片段如下所示:xmlHttp.open(POST, manageOperator.do?method=addOperator, true);xmlHttp.setRequestHeader(Content-Type,application/x-form-urlencoded);xmlHttp.onreadystatechange = function () if (xmlHttp.readyState = 4) if (xmlHttp.status = 200) document.getElementById(tipsInfo).style.height = 25px; document.getElementById(tipsInfo).innerText = 添加操作成功!; ;xmlHttp.send(ur l); open()中请求URL只需要制指定请求的Action。同时,需要设置请求头,以实现URL内容的正确编码:xmlHttp.setRequestHeader(Content-Type,application/x-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论