jQuery 中的 Ajax

$.ajax()

$.ajax()办法概述

作用:发送Ajax申请。

 $.ajax({     type: 'get',     url: 'http://www.example.com',     data: { name: 'zhangsan', age: '20' },     //data: 'name=zhangsan&age=20'     contentType: 'application/x-www-form-urlencoded',     //contentType: 'application/json'     beforeSend: function () {          return false     },     success: function (response) {},     error: function (xhr) {}});

beforeSend办法阐明

$.ajax({    // 申请形式    type: 'post',    // 申请地址    url: '/user',    // 在申请发送之前调用    beforeSend: function () {        alert('申请不会被发送')        // 申请不会被发送        return false;    },    // 申请胜利当前函数被调用    success: function (response) {        // response为服务器端返回的数据        // 办法外部会主动将json字符串转换为json对象        console.log(response);    }})

作用:发送jsonp申请。

$.ajax({    url: 'http://www.example.com',    // 指定以后发送jsonp申请    dataType: 'jsonp',    // 批改callback参数名称    jsonp: 'cb',    // 指定函数名称    jsonCallback: 'fnName',    success: function (response) {} })

serialize办法

作用:将表单中的数据主动拼接成字符串类型的参数

var params = $('#form').serialize();// name=zhangsan&age=30

$.get()、$.post

$.get()、$.post()办法概述

作用:$.get办法用于发送get申请,$.post办法用于发送post申请。

$.get('http://www.example.com', {name: 'zhangsan', age: 30}, function (response) {}) $.post('http://www.example.com', {name: 'lisi', age: 22}, function (response) {})
jQuery中Ajax全局事件

只有页面中有Ajax申请被发送,对应的全局事件就会被触发

.ajaxStart()     // 当申请开始发送时触发.ajaxComplete()  // 当申请实现时触发
NProgress

官宣:纳米级进度条,应用真切的涓流动画来通知用户正在产生的事件!

<link rel='stylesheet' href='nprogress.css'/><script src='nprogress.js'></script>
NProgress.start();  // 进度条开始静止 NProgress.done();   // 进度条完结静止

RESTful 格调的 API

传统申请地址回顾

GET http://www.example.com/getUsers         // 获取用户列表GET http://www.example.com/getUser?id=1     // 比方获取某一个用户的信息POST http://www.example.com/modifyUser      // 批改用户信息GET http://www.example.com/deleteUser?id=1  // 删除用户信息
RESTful API 概述

一套对于设计申请的标准。

GET: 获取数据
POST: 增加数据
PUT: 更新数据
DELETE: 删除数据

RESTful API 的实现

每一个申请地址都要对应资源
users => /users
articles => /articles

GET:http://www.example.com/users 获取用户列表数据
POST:http://www.example.com/users 创立(增加)用户数据
GET:http://www.example.com/users/1 获取用户ID为1的用户信息
PUT:http://www.example.com/users/1 批改用户ID为1的用户信息
DELETE:http://www.example.com/users/1 删除用户ID为1的用户信息

留神:传统的html表单提交不反对put和delete,在Ajax中反对

服务器端:

// 获取用户列表信息app.get('/users', (req, res) => {    res.send('以后是获取用户列表信息的路由');});// 获取某一个用户具体信息的路由app.get('/users/:id', (req, res) => {    // 获取客户端传递过去的用户id    const id = req.params.id;    res.send(`以后咱们是在获取id为${id}用户信息`);});// 删除某一个用户app.delete('/users/:id', (req, res) => {    // 获取客户端传递过去的用户id    const id = req.params.id;    res.send(`以后咱们是在删除id为${id}用户信息`);});// 批改某一个用户的信息app.put('/users/:id', (req, res) => {    // 获取客户端传递过去的用户id    const id = req.params.id;    res.send(`以后咱们是在批改id为${id}用户信息`);});

客户端:

<script type="text/javascript">    // 获取用户列表信息    $.ajax({        type: 'get',        url: '/users',        success: function (response) {            console.log(response)        }    })    // 获取id为1的用户信息    $.ajax({        type: 'get',        url: '/users/1',        success: function (response) {            console.log(response)        }    })    // 删除id为10的用户信息    $.ajax({        type: 'delete',        url: '/users/10',        success: function (response) {            console.log(response)        }    })    // 批改id为1的用户信息    $.ajax({        type: 'put',        url: '/users/10',        success: function (response) {            console.log(response)        }    })</script>

XML 根底

XML是什么

XML 的全称是 extensible markup language,代表可扩大标记语言,它的作用是传输和存储数据。

 <students>      <student>         <sid>001</sid>         <name>张三</name>         </student>     <student>         <sid>002</sid>         <name>王二丫</name>         </student> </students>
app.get('/xml', (req, res) => {    res.header('content-type', 'text/xml');    res.send('<message><title>音讯题目</title><content>音讯内容</content></message>')});
XML DOM

XML DOM 即 XML 文档对象模型,是 w3c 组织定义的一套操作 XML 文档对象的API。浏览器会将 XML 文档解析成文档对象模型。

btn.onclick = function () {    var xhr = new XMLHttpRequest();    xhr.open('get', '/xml');    xhr.send();    xhr.onload = function () {        // xhr.responseXML 获取服务器端返回的xml数据        var xmlDocument = xhr.responseXML;        var title = xmlDocument.getElementsByTagName('title')[0].innerHTML;        container.innerHTML = title;    }}