使用的好处
用一般的表单提交,当我们对视频网站评论时,提交表单发送请求,会导致页面刷新,而利用XMLHttpRequest js中的对象,它可以用来向服务器发送请求,但不会导致页面刷新跳转。
定义
a——asynchronous,可以通过XMLHttpRequest对象发送异步请求;
j——javascript
a——and
x——xml,指响应格式
使用方法
使用时,利用new XMLHttpRequest()先创建一个XMLHttpRequest对象;接下来利用XMLHttpRequest.open(“get|post”,请求地址,true|false);做一个请求发送前的准备工作,利用send()方法真正发送请求;接下来利用XMLHttpRequest.responseText来接收响应,这里的响应通常不是一个完整的HTML,而是一个HTML片段或者字符串。
同步和异步的使用
在open()中,第三个参数,默认的true,
true——表示异步请求,森德方法不会阻塞,页面其他代码,视频都不会等待响应,继续执行;
false——表示同步请求,响应没有返回之前,页面代码、视频都会暂停,直到响应返回为止,send方法在此期间一直处于阻塞状态。
在异步请求下需要使用事件的机制来接收响应,即
xhr.onload=function(){ };
响应返回会触发onload事件,执行事件对应的函数。
post请求
若使用的时post请求时,请求体的发送请求之前先要用
setRequestHeader(“content-type”,”请求体格式”)
设置请求格式,告诉服务器请求体格式。
响应格式
响应的格式有两种,xml和json。一般使用json,解析方便,还支持更多类型,如字符串、数字、布尔值、数组和对象。
Json可以和Java对象之间进行转换,在js中,利用var js对象 =JSON.parse(json字符串)
和var json字符串 = JSON.stringify(js对象);
进行js 对象和 json 字符串相互转换。
在Java中,利用 ObjectMapper()对象.writeValueAsString(java对象);
把java字符串转为json,
利用ObjectMapper()对象.readValue(json字符串, 类.class);
把json转换为Java对象。