Ajax:Asynchronous JavaScript and XML 的缩写,指的是通过 JavaScript 的异步通信,从服务器获取 XML 文档从中提取数据,再更新当前网页的对应部分,而不用刷新整个网页。
前提:只有 协议+端口+域名 一模一样才允许发 AJAX 请求
Ajax步骤:①创建 XMLHttpRequest 实例 ②发出 HTTP 请求 ③接收服务器传回的数据 ④更新网页数据
除Ajax外,通常还有 下面的请求方式:(jsonp)
用 form 可以发请求,但是会刷新页面或新开页面
用 a 可以发 get 请求,但是也会刷新页面或新开页面
用 img 可以发 get 请求,但是只能以图片的形式展示
用 link 可以发 get 请求,但是只能以 CSS、favicon 的形式展示
用 script 可以发 get 请求,但是只能以脚本的形式运行
(ajax有get、post、put、delete请求方式)
1、XMLHttpRequest .readyState表示实例对象的当前状态。该属性只读
0,表示 XMLHttpRequest 实例已经生成,但是实例的open()方法还没有被调用。
1,表示open()方法已经调用,但是实例的send()方法还没有调用,仍然可以使用实例的setRequestHeader()方法,设定 HTTP 请求的头信息。
2,表示实例的send()方法已经调用,并且服务器返回的头信息和状态码已经收到。
3,表示正在接收服务器传来的数据体(body 部分)。这时,如果实例的responseType属性等于text或者空字符串,responseText属性就会包含已经收到的部分信息。
4,表示服务器返回的数据已经完全接收,或者本次接收已经失败。
2、CORS跨域资源共享(Cross-origin resource sharing)
在响应上加:response.setHeader('Access-Control-Allow-Origin','http://跨域网址')
3、JS操作请求和响应(浏览器)
4、封装jQuery.Ajax
因为每个程序员的回调名不一样,所以用 Promise 解决这个问题
(在request.send()里设置请求体时,Chrome浏览器用 post 请求才能显示)