ajax post&get 请求数据

XMLHttpRequest Ajax 实例简介

一、XMLHttpRequest 对象的方法与属性

方    法

描    述

abort()

停止当前请求

getAllResponseHeaders()

把HTTP请求的所有响应首部作为键/值对返回

getResponseHeader("header")

返回指定首部的串值

open("method", "url")

建立对服务器的调用。method参数可以是GET、POST或PUT。url参数可以是相对URL或绝对URL。这个方法还包括3个可选的参数

send(content)

向服务器发送请求

setRequestHeader("header", "value")

把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()

 

  属  性

描    述

onreadystatechange

每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数

readyState

请求的状态。有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成

responseText

服务器的响应,表示为一个串

responseXML

服务器的响应,表示为XML。这个对象可以解析为一个DOM对象

status

服务器的HTTP状态码(200对应OK,404对应Not Found(未找到),等等)

statusText

HTTP状态码的相应文本(OK或Not Found(未找到)等等)


二、使用XMLHttpRequest 实现ajax效果
这里我们用客户端通过XMLHttpRequest 请求服务端获取当前系统时间,实现异步交互!
客户端myAjax.html代码

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head >
    
< title > xmlhttprequest ajax demo </ title >
    
< script  type  ="text/javascript"  language  ="javascript"   >
        
var req; //定义变量,用来创建xmlhttprequest对象
        function creatReq() // 创建xmlhttprequest,ajax开始
        {
            
var url="ajaxServer.aspx"//要请求的服务端地址
            if(window.XMLHttpRequest) //非IE浏览器及IE7(7.0及以上版本),用xmlhttprequest对象创建
            {
                req
=new XMLHttpRequest();
            }

            
else if(window.ActiveXObject) //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败.
            {
                req
=new ActiveXObject("Microsoft.XMLHttp");
            }

            
            
if(req) //成功创建xmlhttprequest
            {
                req.open(
"GET",url,true); //与服务端建立连接(请求方式post或get,地址,true表示异步)
                req.onreadystatechange = callback; //指定回调函数
                req.send(null); //发送请求
            }

        }

        
        
function callback() //回调函数,对服务端的响应处理,监视response状态
        {
            
if(req.readystate==4//请求状态为4表示成功
            {
                
if(req.status==200//http状态200表示OK
                {
                    Dispaly(); 
//所有状态成功,执行此函数,显示数据
                }

                
else //http返回状态失败
                {
                    alert(
"服务端返回状态" + req.statusText);
                }

            }

            
else //请求状态还没有成功,页面等待
            {
                document .getElementById (
"myTime").innerHTML ="数据加载中";
            }

        }

        
        
function Dispaly() //接受服务端返回的数据,对其进行显示
        {
            document .getElementById (
"myTime").innerHTML =req.responseText;
        }

        
    
</ script >
</ head >
< body >
    
< div  id ="myTime" ></ div >
        
    
< input  id ="Button1"  type ="button"  value ="Get Time"   onclick  ="creatReq();" />
</ body >
</ html >

POST 数据

以下程序已调试通过:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>


<script language="javascript">
function saveUserInfo()
{
//获取接受返回信息层
var msg = document.getElementById("msg");

//获取表单对象和用户信息值
var f = document.user_info;
var userName = f.user_name.value;
var userAge      = f.user_age.value;
var userSex      = f.user_sex.value;

//接收表单的URL地址
var url = "/ajax_output.php";

//需要POST的值,把每个变量都通过&来联接
var postStr      = "user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ userSex;

//实例化Ajax
//var ajax = InitAjax();


             var ajax = false;
            //开始初始化XMLHttpRequest对象
            if(window.XMLHttpRequest) { //Mozilla 浏览器
                    ajax = new XMLHttpRequest();
                    if (ajax.overrideMimeType) {//设置MiME类别
                            ajax.overrideMimeType("text/xml");
                    }
            }
            else if (window.ActiveXObject) { // IE浏览器
                    try {
                            ajax = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (e) {
                            try {
                                    ajax = new ActiveXObject("Microsoft.XMLHTTP");
                            } catch (e) {}
                    }
            }
            if (!ajax) { // 异常,创建对象实例失败
                    window.alert("不能创建XMLHttpRequest对象实例.");
                    return false;
            }
                
                
                

//通过Post方式打开连接
ajax.open("POST", url, true);

//定义传输的文件HTTP头信息
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

//发送POST数据
ajax.send(postStr);

//获取执行状态
ajax.onreadystatechange = function() { 
      //如果执行状态成功,那么就把返回信息写到指定的层里
      if (ajax.readyState == 4 && ajax.status == 200) { 
       msg.innerHTML = ajax.responseText; 
      } 

}
</script>
<body >
<div id="msg"></div>
<form name="user_info" method="post" action="">
姓名:<input type="text" name="user_name" /><br />
年龄:<input type="text" name="user_age" /><br />
性别:<input type="text" name="user_sex" /><br />

<input type="button" value="提交表单" onClick="saveUserInfo()">
</form>

</body>


以上页面存为ajax.php

然后再建 一个PHP文件,ajax_output.php


<?
        echo $_POST['user_name'];
        echo $_POST['user_age'];
        echo $_POST['user_sex'];
?>



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值