服务端响应数据并对数据进行字符串转换
server.js:
// 1.引入express
const express=require("express");
// 2.创建应用对象
const app=express();
// 3.创建路由规则
// request是对请求报文的封装
// response是对响应报文的封装
app.all('/json-server',(request,response)=>{
// 设置响应头 设置运行跨域
response.setHeader('Access-Control-Allow-Origin','*');
// 响应头 允许输入非预定义的响应头
response.setHeader('Access-Control-Allow-Headers','*');
// 响应一个数据 对象
const data={
name:'atguigu'
};
// 对对象进行字符串转换 send里面接收的是字符串
let str=JSON.stringify(data)
// 设置响应体
response.send(str);
});
4.1 在html文件中将字符串变成对象 手动方法
JSON.parse():用于与服务器交换数据,可以使用该方法将数据转换为 JavaScript 对象。
let data=JSON.parse(xhr.response);
result.innerHTML=data.name;
4.2 自动方法
先设置响应体数据的类型
xhr.responseType='json';
可以直接实现自动转换,读取对应的属性即可:
result.innerHTML=xhr.response.name;
<script>
const result=document.getElementById('result');
// 绑定键盘按下事件
window.onkeydown=function(){
// 发送请求
const xhr=new XMLHttpRequest();
// 设置响应体数据的类型
xhr.responseType='json';
// 初始化
xhr.open('GET','http://169.254.31.146:8000/json-server');
// 发送
xhr.send();
// 事件绑定
xhr.onreadystatechange=function(){
if(xhr.readyState===4){
if(xhr.status>=200&&xhr.status<300){
// result.innerHTML=xhr.response;
// 把字符串变成对象 手动
// let data=JSON.parse(xhr.response);
// console.log(data);
// result.innerHTML=data.name;
// 自动转换
console.log(xhr.response);
result.innerHTML=xhr.response.name;
}
}
}
}
</script>