95.《ajax请求超时与网络异常》

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>请求超时与网络异常</title>
    <style>
        #result{
            width:200px;
            height:100px;
            border:solid 1px #90b;
        }
    </style>
</head>
<body>
    <button>点击发送请求</button>
    <div id="result"></div>
    <script>
        const btn = document.getElementsByTagName('button')[0];
        const result = document.querySelector('#result');

        btn.addEventListener('click', function(){
            const xhr = new XMLHttpRequest();
            //超时设置 2s 设置
            xhr.timeout = 2000;
            //超时回调
            xhr.ontimeout = function(){
                alert("网络异常, 请稍后重试!!");
            }
            //网络异常回调
            xhr.onerror = function(){
                alert("你的网络似乎出了一些问题!");
            }

            xhr.open("GET",'http://127.0.0.1:8000/delay');
            xhr.send();
            xhr.onreadystatechange = function(){
                if(xhr.readyState === 4){
                    if(xhr.status >= 200 && xhr.status< 300){
                        result.innerHTML = xhr.response;
                    }
                }
            }
        })
    </script>
</body>
</html>

node.js


const { json } = require("body-parser")
const express = require("express") 
const app = express() 
 
app.all("/delay",(req,res)=>{
    // 设施响应头
    res.setHeader("Access-Control-Allow-Origin","*")

    let str = {
        name:"张三" 
    }
    setTimeout(()=>{
         let abc = JSON.stringify(str)
         res.send(abc)
    },3000)
    
})

app.listen(3000)
console.log("服务器启动成功");
上一篇:95%的软件公司面试都会问的面试题大盘点


下一篇:4个改变你编程技能的小技巧,帮你解决95%以上的问题!