在开发过程中服务器返回的响应消息,通常包含TEXT、HTML、SCRIPT、XML、JSON格式。我们一般在响应消息的头部设置向客户端的输出格式,而MIME类型(唯一标识一种特定格式的文件的一个描述符)。通过设置如header('Content-type:text/plain');注意header之前不能向客户端输出任何内容。
在这里使用AJAX接受服务器返回的HTML响应和使用AJAX接受服务器返回的JSON属于重点,前者用于返回一段数据,而后者通常用于服务器返回批量的数据。在使用AJAX返回批量的数据时我们通常会用两种方法:①使用AJAX返回XML响应、②使用AJAX返回JSON响应。虽然使用AJAX返回XML响应的能够做出更多JSON所不能达到的效果,但是我们还是会选择后者。其优点是更加轻量级、简洁、处理速度更快。
我们分别来讨论使用AJAX接受服务器返回的HTML响应和使用AJAX接受服务器返回的JSON响应。
1.使用AJAX接收服务器返回的HTML响应:首先我们应在响应消息的头部设置header('Content-type:text/html');
使用这种方式的重点就在于字符串的拼接问题document.getElementXxxx().innerHTML= xhr.responseText;
2.使用AJAX接收服务器返回的JSON响应是我们在项目当中使用的最多的,首先JSON原本是JS中创建对象的直接量法,作为一种字符串的表示方法,但是后来由于其代码的简洁和轻量的优点而被各种语言所支持,这是JSON非常大的优点。相比于XML①其更加轻量,因为他不需要声明格式之类和用元素标签包围;②在用XML响应批量数据时,往往会遍历树节点,而JSON不需要;③但往往JSON做不出来的效果用XML可以做来。
服务器端:
header('Content-Type: application/json');
$arr = [ ];
echo json_encode( $arr); //PHP数组=>JSON字符串
客户端:
(1)
(2)var jsObj = JSON.parse(xhr.responseText ); //把JSON字符串解析为JS数组/对象
(3)
(4)
不难看出JSON字符串所实现的效果就是将服务器端的批量的结构数据转化为JSON字符串,在以对象的形式返回给客户端(JS对象)。