AJAX和服务器交互实例

作者: 世外大帝 | 来源:发表于2017-04-27 15:39 被阅读81次

这个是AJAX基础,虽然现在都直接用jQuery AJAX了,但是我还是劝你再看看这个,毕竟...我一开始找到这个了,都写出来了不看就可惜呀...

XHR基础

首先创建XMLHttpRequest对象


//ajex的基础是XMLHttpRequest();所以需要先创建一个XMLHttpRequest对象
var iable=new XMLHttpRequest();

// IE5 IE6等老版本使用 ActiveX 对象
var iable=new ActiveXObject("Microsoft.XMLHTTP");

//为了应对所有的现代浏览器,包括 IE5 和 IE6,需要检查浏览器是否支持 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

请求

/**
 * @Param GET or POST
 * @Param url
 * @param asyn(boolean)
 *
 * 它还有个构造方法是5个参数
 * 最后两个参数username和password
 */
xmlhttp.open("GET","http://192.168.4.87:8080/login",true);
xmlhttp.send();

响应

  • responseText
  • responseXML
//看名字就知道,下面是获取text
xmlhttp.responseText;
//需要显示的话直接显示出来就行了
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

//看名字就知道,下面是获取xml,然而XML需要解析
xmlhttp.responseXML;

//首先获取到返回的xml信息
xmlDoc=xmlhttp.responseXML;
    txt="";
    //获取books.xml的title
    x=xmlDoc.getElementsByTagName("title");
    //遍历出xml所有的title信息
    for (i=0;i<x.length;i++)
      {
      txt=txt + x[i].childNodes[0].nodeValue + "<br />";
      }
      //现在就可以显示出来了
    document.getElementById("myDiv").innerHTML=txt;
    }

<!--这是一个books.xml-->
<bookstore>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
</bookstore>

onreadystatechange 事件

一般情况下,你可以把它理解为callback,以前只知道web是单线程,自从有了ajax,也就有了异步,不得不说是一个巨大的进步。

属性 描述
onreadystatechange 存储函数,随着readyState改变
readyState XMLHttpRequest 状态码
status 请求状态

附录

<!--XMLHttpRequest状态-->
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪

<!--请求状态-->
200: "OK"
404: 未找到页面

<!--响应就绪状态需要-->
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    <!--请求成功之后执行的代码-->
    ...
    }
  }

jQuery中的AJAX

//首先引入jQuery
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>

//然后直接调用吧
$.ajax({
    cache: true,
    url: "http://192.168.4.87:8080/login2",
    type:"POST",
    //要提交的数据
    data:{username:$("#user").val(), password:$("#pass").val()},
    //请求失败
    error: function(request) {
    alert("Connection error");
        },
    //请求成功
    success: function(data) {
            
        window.location.href = 'index.html';
      }
  
});

相关文章

  • vue起步(2)之数据交互

    vue中的交互(ajax,jsonp) vue中也存在像ajax和jsonp的数据交互,实现向服务器获取数据,但是...

  • ajax

    1. ajax交互流程: ajax数据交互流程 1、创建一个ajax对象2、填写请求地址3、发送请求4、等待服务器...

  • AJAX和服务器交互实例

    这个是AJAX基础,虽然现在都直接用jQuery AJAX了,但是我还是劝你再看看这个,毕竟...我一开始找到这个...

  • 8.js-web-API-Ajax JSONP

    Ajax-XMLHttpRequst Ajax(服务器端交互ajax必不可少) 1.手动编写一个ajax,不依赖第...

  • js之AJAX复习

    异步交互和同步交互 什么是Ajax? Ajax的工作原理。 Ajax包含的技术: Ajax的缺陷: Ajax的核心...

  • Ajax

    一、服务器 二、数据交互 form 表单 三、Ajax (Asynchronous Jav...

  • 理解 JSONP

    一、前置知识 页面与服务器的交互 在 AJAX 出现之前,页面与服务器的交互是怎么完成的呢? 通过提交 form ...

  • ajax的运用

    交互 form 提交: ajax: jquery的ajax: ajax做交互

  • ajax面试小题

    ajax的缺点 1、ajax不支持浏览器back按钮。 2、安全问题 AJAX暴露了与服务器交互的细节。 3、对搜...

  • ajax通讯原理以及自己封装一个ajax函数

    ajax通讯原理 要解释ajax的原理,需要从旧的交互方式开始,当用户触发一个http请求到服务器,服务器对其进行...

网友评论

    本文标题:AJAX和服务器交互实例

    本文链接:https://www.haomeiwen.com/subject/yixnzttx.html