AJAX(笔记04) - 原生AJAX - GET请求
搭建Web服务环境
之前讲过 Express 快速启动Web服务,这里把代码重写一下;
新建 server.js 服务文件:简短4步创建简单Web服务;
启动服务:需在 server.js 目录执行 node 命令;
看到服务已启动字样,代表 Web 服务已经搭建好了;
浏览器访问:localhost:8000/server
或 127.0.0.1:8000/server
查看:
响应体的返回是正常的,再看下响应头的返回:
Response Headers 响应头中的 Access-Content-Allow-Origin 为 * ;
创建 Ajax 的GET请求
需求:点击按钮,把服务器响应的内容输出在div里;
新建页面: ajax.html ,写点结构和样式;
预览下效果:
需求是点击按钮将服务器的响应体显示在 div 中;
在这个文件中写下 AJAX 的GET请求的 JS部分:
提示1:每行代码都有注释,不需要语法解释了;
提示2:onreadystatechage
是响应状态改变事件,即当 readystate
改变就触发;
on 是当...的时候
readystate 是 xhr 的属性,表示响应状态有5个值: 0,1,2,3,4
change 改变
readystate:存有XMLHttpRequest的状态从0到4发生变化。
0:请求未初始化
1:服务器连接已建立
2:请求已接收
3:请求处理中
4:请求已完成,且响应已就绪
要判断是 readystate === 4 时,表示都就绪了;
提示3:xhr.status
是表示HTTP请求响应的状态码,[200-300) 之间表示状态码为成功;不包括300;
200 服务器响应正常
400 无法找到请求资源
403 没有权限访问
404 访问的资源不存在
500 服务器内部错误
提示4:返回的结果包含的4个部分:响应行、响应头、空行、响应体;
响应行: 是形如这样的 “HTTP/1.1 200 OK”
xhr.status
:是状态码,这里是200;
xhr.statusText
: 是状态码字符串,这里是 OK;
响应头: xhr.getAllResponseHeaders()
,只会显示一部分响应头;
响应体: xhr.response
提示5:把响应体的内容赋值给 result.innerHTML
渲染到页面上;
控制台结果:
响应行:状态码 和 状态码字符串 显示正常;
响应头:只显示了内容长度和内容类型;
响应体:就是在Web服务器中设置的响应体内容;
页面效果:没有问题;
交互信息:
响应行和响应头:
响应体:
GET请求传参
一般使用搜索都在URL后加上“?”来传参;
参数的形式写成: ?参数名=参数值&参数名=参数值
在AJAX里GET请求传递参数也是在URL后追加 ?a=1&b=2&c=3
这种形式;
还以上面GET请求为例,改下这段 xhr.open()
,看下效果: