【AJAX】4. 服务端响应JSON数据

服务端响应数据并对数据进行字符串转换
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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值