Ajax分析

[TOC]

Ajax数据爬取

Ajax介绍

Ajax,全称为Asynchronous JavaScript and XML,即异步的JavaScript和XML。它不是一门编程语言,而是利用JavaScript在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。

XMLHttpRequest对象

XMLHttpRequest对象是 AJAX 的基础,用于在后台与服务器交换数据,可以在不重新加载整个网页的情况下,对网页的某部分进行更新.

1.创建XMLHttpRequest对象:

```
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();// 创建 XMLHttpRequest 对象的语法
}else{
 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");// IE5 和 IE6使用 ActiveX 对象
 }
```

2.发送请求:

  • 使用 XMLHttpRequest 对象的 open() 和 send() 方法将请求发送到服务器

  • open(method,url,async):规定请求的类型、URL 以及是否异步处理请求。

    • method:请求的类型;GET 或 POST
    • url:文件在服务器上的位置
    • async:true(异步)或 false(同步),ajax必须为true
  • send(string):将请求发送到服务器。

    • string:仅用于 POST 请求

3.响应:

  • XMLHttpRequest 对象的 responseText(获得字符串形式的响应数据)或 responseXML(获得 XML 形式的响应数据)属性获得来自服务器的响应

4.onreadystatechange 事件:

  • 当请求被发送到服务器时,每当 readyState 改变时,就会触发 onreadystatechange 事件

  • 解析函数:当使用 async=true 时,当响应处于 onreadystatechange 事件中的就绪状态时(readyState 等于 4 且状态为 200 )执行的函数:

    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
      document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
      }
      }
    xmlhttp.open("GET","test1.txt",true);
    xmlhttp.send();
  • onreadystatechange:存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。

  • readyState:存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

    • 0: 请求未初始化
    • 1: 服务器连接已建立
    • 2: 请求已接收
    • 3: 请求处理中
    • 4: 请求已完成,且响应已就绪
  • status

    • 200: “OK”
    • 404: 未找到页面

Ajax分析方法

Ajax有其特殊的请求类型,它叫作xhr

Request Headers中有一个信息为X-Requested-With:XMLHttpRequest,这就标记了此请求是Ajax请求

Ajax一般为json格式

猜你喜欢

转载自blog.csdn.net/qq_32392853/article/details/81607879