AJAX中的POST请求方式

/**
 *作者:makaay
 *功能:ajax的post请求方式
 */
 
 
//声明一个全局变量
var XMLHttp;

//创建XMLHttpRequest对象
function createXMLHTTP()

 //老版本的IE
 if(window.ActiveXObject)
 {
  XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
 }
 //IE7 或者firefox
 else if(window.XMLHttpRequest)
 {
  XMLHttp = new XMLHttpRequest();
 }
 //返回这个对象
 return XMLHttp;
}

//客户端调用的函数
function checkuser()
{
 //获取用户名
 var username=document.getElementById('username').value;
 //获取密码
 var userpass=document.getElementById('userpass').value;
 //要发送的数据
 var user = "username="+username+"&userpass="+userpass;
 //调用createXMLHTTP()函数,得到XMLHttpRequest对象
 createXMLHTTP();
 //注册回调函数callback!。。。函数名后面不能带()!!!!
 XMLHttp.onreadystatechange = callback;
 
 //设置传输信息
 /**
 *1,传输方式:get,post,put
 *2,要传送到的地址
 *3,异步还是同步,默认为true(异步)可选
 *4,username 可选
 *5, userpass 可选
 **/
 
 //这是POST请求,但是后面加上一个参数的原因是避免缓存影响我们的数据结果!
 XMLHttp.open("post","CheckUserServlet?time="+new Date().getTime(),true);
 //如果是post方式,要设置下面这句请求头信息,get则不用
 XMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 //发送请求
 XMLHttp.send(user);
}

//回调函数
function callback(){
 //判断交互状态是否完成 有5个状态 0.1.2.3.4  4是表示完成
 if(XMLHttp.readyState ==4){
  //判断是否发生错误 200表示成功
  if(XMLHttp.status ==200){
   //如果状态为4,并且请求相遇码为200则执行下面的语句
   //alert(XMLHttp.responseText);
   
   //调用show这个函数
   show();
  }
 }
}

function show(){
 //获得ID号为showresult的节点
 var showresult = document.getElementById("showresult");
 //接收返回回来的数据
 var responseText =XMLHttp.responseText;
 //将返回来的数据的值给showresult
 showresult.innerHTML=responseText;
}

### 如何使用 AJAX 进行 POST 请求传参 要通过 AJAX 使用 POST 请求传递参数,可以利用 `XMLHttpRequest` 对象完成这一操作。以下是具体实现方法: #### 设置请求方式和目标 URL 首先创建一个 `XMLHttpRequest` 实例,并调用其 `open()` 方法指定请求的方式(POST)、URL 地址以及是否异步执行。 ```javascript var xmlhttp = new XMLHttpRequest(); xmlhttp.open("POST", "ajax_test.php", true); ``` 此部分代码设置了请求的目标地址为 `"ajax_test.php"` 并指定了该请求将以异步方式进行[^1]。 #### 添加 HTTP 头部信息 为了模拟 HTML 表单提交的行为,在发送数据之前需要设置合适的 HTTP 头部字段。这可以通过 `setRequestHeader()` 方法来完成。 ```javascript xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); ``` 上述语句定义了 Content-Type 为 `application/x-www-form-urlencoded`,这是标准的表单编码类型,意味着键值对会被编码成查询字符串的形式[^2]。 #### 发送实际的数据 最后一步是在 `send()` 函数中提供待传输的具体数据内容。这些数据通常是以 key=value 的形式组合而成,并且多个键值对之间由 '&' 符号分隔开。 ```javascript xmlhttp.send("name=smyhvae&age=27"); ``` 这里我们构建了一个简单的字符串表示两个变量及其对应的数值:"name" 被赋予了 smyhvae ,而 "age" 则被赋值为 27 。注意这里的特殊字符 & 已经转换回正常的 & 字符。 完整的例子如下所示: ```javascript var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { console.log(this.responseText); // 输出服务器响应的内容到控制台 } }; xmlhttp.open("POST", "ajax_test.php", true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send("name=smyhvae&age=27"); ``` 这段脚本不仅包含了前面提到的所有必要步骤,还包括了一个回调函数用于监听 readyState 属性的变化情况以便于处理来自服务器端返回的结果[^3]。 AJAX 技术允许网页无需重新加载就能与服务器交换信息并更新部分内容,极大地提升了用户体验效果[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值