如何详细解析JavaScript中实现异步的Ajax操作及其原理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2504个文字,预计阅读时间需要11分钟。
目录一级目录二级目录三级目录HTTP协议请求消息结构请求方法响应头信息响应状态码AJAXAJAX=Asynchronous JavaScript and XML(异步的JavaScript和XML)XMLHttpRequest对象
目录
- 一级目录
- 二级目录
- 三级目录
- HTTP协议
- 请求消息结构
- 请求方法
- 响应头信息
- 响应状态码
- AJAX
- AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
- XMLHttpRequest对象
- XMLHttpRequest请求
- XMLHttpRequest响应
- XMLHttpRequest响应状态
- XML
- XML 语法规则
- XML 解析
- JSON
- JSON 语法规则
- JSON文件读取
- JSON解析
- JSONP
- 服务端JSONP格式数据
- 客户端实现 callbackFunction 函数
- jQuery 使用 JSONP
- 总结
一级目录
二级目录
三级目录
1.掌握HTTP协议和规则
2.掌握HTTP请求和响应的规则重点
3.了解HTTP响应头信息
4.了解HTTP状态码
5.掌握AJAX开发中使用的全过程重点
6.掌握JavaScript JSON的数据结构和使用方法重点
7.掌握JavaScript XML数据结构和使用方法
8.掌握AJAX获取JSON格式数据的方法
9.掌握JSON格式转换的方法
HTTP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
请求消息结构
HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:
- 请求行(request line)
- 请求头部(header)
- 空行
- 请求数据
下面给出了请求报文的一般格式:
GET / HTTP/1.1 Host: www.csdn.net Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Referer: www.csdn.net/ Accept-Encoding: gzip, deflate, sdch, br Accept-Language: zh-CN,zh;q=0.8 Cookie: uuid_tt_dd=-6852503192799459486_20161230; _ga=GA1.2.851452765.1483110024; UE="starzhangkiss@qq.com"; __guid=253029775.837108528115350700.1516453692677.6106
请求方法
响应头信息
HTTP/1.1 200 OK
Server: Tengine
Content-Type: text/html
Content-Length: 15154
Connection: keep-alive
Date: Fri, 27 Apr 2018 02:49:12 GMT
X-Powered-By: HHVM/3.11.1
Content-Encoding: gzip
Vary: Accept-Encoding
Via: cache40.l2et2-2[0,200-0,H], cache3.l2et2-2[1,0], cache1.cn548[0,200-0,H], cache4.cn548[1,0] Age: 35292
X-Cache: HIT TCP_HIT dirn:7:245100152 mlen:-1
X-Swift-SaveTime: Fri, 27 Apr 2018 12:24:58 GMT
X-Swift-CacheTime: 86400 Timing-Allow-Origin: *
EagleId: dbee144415248326444025049e
响应字段类型
响应状态码
详细状态码列表
AJAX
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
- AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
- AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
XMLHttpRequest对象
XMLHttpRequest 是AJAX 的基础。XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新
XMLHttpRequest请求
如需将请求发送到服务器,我们使用XMLHttpRequest对象的open()和send()方法:
xmlwww.baidu.com/try/ajax/jsonp.php?jsonp=callbackFunction。假设客户期望返回JSON数据:["customername1","customername2"]。真正返回到客户端的数据显示为:callbackFunction(["customername1","customername2"])。
服务端文件jsonp.php代码为:
header('Content-type: application/json'); //获取回调函数名 $jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']); //json数据 $json_data = '["customername1","customername2"]'; //输出jsonp格式的数据 echo $jsoncallback . "(" . $json_data . ")";
客户端实现 callbackFunction 函数
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JSONP 实例</title> </head> <body> <div id="divCustomers"></div> <script type="text/javascript"> function callbackFunction(result, methodName) { var html = '<ul>'; for(var i = 0; i < result.length; i++) { html += '<li>' + result[i] + '</li>'; } html += '</ul>'; document.getElementById('divCustomers').innerHTML = html; } </script> <script type="text/javascript" src="www.runoob.com/try/ajax/jsonp.php?jsoncallback=callbackFunction"></script> </body> </html>
jQuery 使用 JSONP
以上代码可以使用 jQuery 代码实例:
<html> <head> <meta charset="utf-8"> <title>JSONP 实例</title> <script src="cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script> </head> <body> <div id="divCustomers"></div> </body> <script> $.getJSON("www.runoob.com/try/ajax/jsonp.php?jsoncallback=?", function(data) { var html = '<ul>'; for(var i = 0; i < data.length; i++) { html += '<li>' + data[i] + '</li>'; } html += '</ul>'; $('#divCustomers').html(html); }); </script> </html>
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注自由互联的更多内容!
本文共计2504个文字,预计阅读时间需要11分钟。
目录一级目录二级目录三级目录HTTP协议请求消息结构请求方法响应头信息响应状态码AJAXAJAX=Asynchronous JavaScript and XML(异步的JavaScript和XML)XMLHttpRequest对象
目录
- 一级目录
- 二级目录
- 三级目录
- HTTP协议
- 请求消息结构
- 请求方法
- 响应头信息
- 响应状态码
- AJAX
- AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
- XMLHttpRequest对象
- XMLHttpRequest请求
- XMLHttpRequest响应
- XMLHttpRequest响应状态
- XML
- XML 语法规则
- XML 解析
- JSON
- JSON 语法规则
- JSON文件读取
- JSON解析
- JSONP
- 服务端JSONP格式数据
- 客户端实现 callbackFunction 函数
- jQuery 使用 JSONP
- 总结
一级目录
二级目录
三级目录
1.掌握HTTP协议和规则
2.掌握HTTP请求和响应的规则重点
3.了解HTTP响应头信息
4.了解HTTP状态码
5.掌握AJAX开发中使用的全过程重点
6.掌握JavaScript JSON的数据结构和使用方法重点
7.掌握JavaScript XML数据结构和使用方法
8.掌握AJAX获取JSON格式数据的方法
9.掌握JSON格式转换的方法
HTTP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
请求消息结构
HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:
- 请求行(request line)
- 请求头部(header)
- 空行
- 请求数据
下面给出了请求报文的一般格式:
GET / HTTP/1.1 Host: www.csdn.net Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Referer: www.csdn.net/ Accept-Encoding: gzip, deflate, sdch, br Accept-Language: zh-CN,zh;q=0.8 Cookie: uuid_tt_dd=-6852503192799459486_20161230; _ga=GA1.2.851452765.1483110024; UE="starzhangkiss@qq.com"; __guid=253029775.837108528115350700.1516453692677.6106
请求方法
响应头信息
HTTP/1.1 200 OK
Server: Tengine
Content-Type: text/html
Content-Length: 15154
Connection: keep-alive
Date: Fri, 27 Apr 2018 02:49:12 GMT
X-Powered-By: HHVM/3.11.1
Content-Encoding: gzip
Vary: Accept-Encoding
Via: cache40.l2et2-2[0,200-0,H], cache3.l2et2-2[1,0], cache1.cn548[0,200-0,H], cache4.cn548[1,0] Age: 35292
X-Cache: HIT TCP_HIT dirn:7:245100152 mlen:-1
X-Swift-SaveTime: Fri, 27 Apr 2018 12:24:58 GMT
X-Swift-CacheTime: 86400 Timing-Allow-Origin: *
EagleId: dbee144415248326444025049e
响应字段类型
响应状态码
详细状态码列表
AJAX
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
- AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
- AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
XMLHttpRequest对象
XMLHttpRequest 是AJAX 的基础。XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新
XMLHttpRequest请求
如需将请求发送到服务器,我们使用XMLHttpRequest对象的open()和send()方法:
xmlwww.baidu.com/try/ajax/jsonp.php?jsonp=callbackFunction。假设客户期望返回JSON数据:["customername1","customername2"]。真正返回到客户端的数据显示为:callbackFunction(["customername1","customername2"])。
服务端文件jsonp.php代码为:
header('Content-type: application/json'); //获取回调函数名 $jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']); //json数据 $json_data = '["customername1","customername2"]'; //输出jsonp格式的数据 echo $jsoncallback . "(" . $json_data . ")";
客户端实现 callbackFunction 函数
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JSONP 实例</title> </head> <body> <div id="divCustomers"></div> <script type="text/javascript"> function callbackFunction(result, methodName) { var html = '<ul>'; for(var i = 0; i < result.length; i++) { html += '<li>' + result[i] + '</li>'; } html += '</ul>'; document.getElementById('divCustomers').innerHTML = html; } </script> <script type="text/javascript" src="www.runoob.com/try/ajax/jsonp.php?jsoncallback=callbackFunction"></script> </body> </html>
jQuery 使用 JSONP
以上代码可以使用 jQuery 代码实例:
<html> <head> <meta charset="utf-8"> <title>JSONP 实例</title> <script src="cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script> </head> <body> <div id="divCustomers"></div> </body> <script> $.getJSON("www.runoob.com/try/ajax/jsonp.php?jsoncallback=?", function(data) { var html = '<ul>'; for(var i = 0; i < data.length; i++) { html += '<li>' + data[i] + '</li>'; } html += '</ul>'; $('#divCustomers').html(html); }); </script> </html>
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注自由互联的更多内容!

