Ajax

作者:王志伟

邮箱:wangzhiwei@yumaomoney.com

更改历史

*2018-10-23     高天阳     迁移jquery使用Ajax示例
*2018-10-17     王志伟     初始化文档

1 什么是Ajax

Ajax全称:Asynchronous JavaScript and XML Ajax不是某种变成语言 而是一种无需重新加载整个网页的情况下能够更新部分网页的技术。

1.1 同步

1.2 异步

2 XMLhHttpRequest对象

2.1 创建XMLhHttpRequest对象

IE6以下浏览器不支持XMLhHttpRequest对象

2.2 XMLhHttpRequest和本地文件

开发和测试时XMLhHttpRequest对象的使用差异

2.3 了解HTTP

Http 是计算机通过网络进行通信的规则 http 是一种无状态的信息 是指比如客户获得一张网页之后关闭浏览器,然后再一次启动浏览器,再登录该网站,但是服务器并不知道客户关闭了一次浏览器

一个完整的HTTP请求,通常包括7个步骤

  • 建立TCP链接

  • Web浏览器向Web服务器发送请求命令

  • Web浏览器发送请求头部信息

  • Web服务器应答

  • Web服务器发送应答头信息

  • Web服务器向Web浏览器发送数据

  • Web服务器关闭TCP连接

一个HTTP请求包括四个部分

  • HTTP请求方法或“动作”GET/POST

  • 正在请求的地址(url)

  • 一个可选的请求头集合,其中可能包括身份验证信息(客户端环境信息)

  • 一个可选的请求主体(查询字符串、表单信息)

服务器返回HTTP响应包括3个部分

  • 一个数字和文字组成的状态码,用来显示请求的成功和失败

  • 一个响应头集合

  • 响应主体

2.4 GET请求与POST请求的差异

GET

  • 一般用于信息获取

  • 使用URL传递参数

  • 对发送的信息数量有限制 2000个字符

POST

  • 一般用于修改服务器上的资源

  • 对所发的信息数量无限制

2.5 HTTP状态码

2.6 XMLHttpRequest发送请求

open(method,url,async) send(string)

2.7 XMLHttpRequest取得响应

readyState属性

应用场景?

3.JSON基本概念

JSON:Javascript对象表示法(Javascript Object Notation) JSON是存储和交换文本信息的语法,类似XML。它采用键值对的方式来组织,易于人们阅读与编写,同时也易于机器解析与生成。 JSON是独立语言,也就是说不管什么语言都可以解析Json,只需要按照JSON的规则即可

3.1 解析JSON

eval和JSON.parse()的区别

禁止使用eval的原因

如果在解析对象的同事 格式化对象属性 将age的数据转化成出生年份 推荐json检测工具 https://jsonlint.com/

规范的JSON返回值

4.Jquery中的ajax使用

5.跨越问题

Javascript出于安全方面的考虑,不允许跨域调用其他页面的对象、什么是跨域呢,简单地理解就是因为Javascript同源策略的限制

5.1判断跨域

5.2如何解决跨域

方法一 代理

方法二 JSONP 解决主流浏览器Get请求 不支持POST请求

服务器端的改动

方法二 XHR2

相关面试题

1、ajax的实现和原理

2、Ajax的优缺点各说三条

3、AJAX机制,open的参数是什么

4、请解释 JSONP 的工作原理,以及它为什么不是真正的 AJAX

5、XMLHttpRequest对象在IE和Firefox中创建方式有没有不同

//IE中通过new ActiveXObject()得到,Firefox中通过newXMLHttpRequest()得到

6、常见状态码的含义

  • 200 OK 客户端请求成功

  • 301 资源(网页等)被永久转移到其他URL

  • 400 Bad Request 客户端请求有语法错误,不能被服务器所理解

  • 403 Forbidden 服务器收到请求,但是拒绝提供服务

  • 404 Not Found 请求资源部存在,输入了错误的URL

  • 500 Internal Server Error 服务器发生不可预期的错误

  • 503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

Last updated

Was this helpful?