一、使用AJAX
需要用JS提供一个异步交互的对象XMLHttpRequest,实现数据的‘拿’和‘取’
第一步:创建一个能够发起HTTP请求消息的对象
let xhr=new XMLHttpRequest(); //向服务器端发送遵循HTTP协议的请求消息,期望得到XML格式的响应数据 注意:括号必须加!创建对象后就可以使用xhr变量名使用这个对象的各种属性和方法了 |
第二步:XHR对象打开到服务器的连接(拨通电话)
xhr.open(method,url); 推荐写法! xhr.open(method,url,async); 参数1:method -- 要是用的HTTP方法,如:GET/POST/DELETE/PUT等,大写! 参数2:url -- 发送请求的URL(处理业务的后台接口),可以省略:协议 IP地址 端口号 参数3:async -- 【可选,布尔类型】表示是否执行异步操作,默认值为ture异步,false为同步 |
第三步:提前声明好,如果得到了服务器的响应消息,该如何处理
xhr.οnlοad=function(){ let result=xhr.responseText //获取响应消息的主体内容,保存在result变量中 } |
第四步:向服务器发送请求消息
注意:一定是先发送请求消息,得到响应以后,再执行第3步 xhr.send(); //发送一个没有请求主体的消息,比如GET xhr.send(null); //发送一个没有请求主体的消息 xhr.send('uname=tom&upwd=123'); //发送一个有请求主体的消息,比如POST |
注意事项:
post方式的坑: 1.server.js中(用于获取body参数的)配置中间件 app.use(express.urlencoded({ 2.在open方法够,紧挨着就要写,设置请求头信息 xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded;charset=utf-8') 3.xrh.send(data)需要传入请求主体 let data=`id=${i}&tit=${t}&price=${p}` |