老师请检查

老师请检查

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <title></title>
</head>

<body>
    <script>
        const url1 = 'https://www.imooc.com/api/http/search/suggest?words=js';
        const url2 = 'https://www.imooc.com/api/http/search/suggest';
        const xhr = new XMLHttpRequest();
        xhr.onreadystatechange = () => {
            if (xhr.readyState != 4) return;
            if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
                console.log(xhr.responseText);
                document.write(xhr.responseText);
            }
        };
    xhr.open('GET',url1,true);
    // GET
    xhr.send(null)
    // POST
    xhr.open('POST',url2,true);
    xhr.send('username=mike');
    </script>
</body>
</html>

老师为什么我send两次只返回一次数据而不是两次?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,Ajax请求一般只同时发送一次,不建议同时发送两次,同学的代码中先发送了GET请求,然后又发送了POST请求,此时只有后面的POST请求才会发送成功,如图

https://img1.sycdn.imooc.com//climg/6195ae9609a05a9110320423.jpg

所以,也只会返回一次的数据。

祝学习愉快!

  • localhost999 提问者 #1

    那怎么才可以做到不同时呢?

    2021-11-18 12:12:21
  • 好帮手慕然然 回复 提问者 localhost999 #2

    同学你好,可以通过js代码来控制一下,默认先发送GET请求,等GET请求成功之后再发送POST请求,代码实现参考如下:

    https://img1.sycdn.imooc.com//climg/6195e606097dcac511910723.jpg

    在实际开发中,很少会遇到这类需求,同学大概了解一下思路即可。

    祝学习愉快!

    2021-11-18 13:43:06
  • localhost999 提问者 #3
    老师,那如果我获取到后端发来的数据并展示在网页上后,如果此时后端的数据发生了变化,我的网页是不用重新send也会自动变成最新的吗
    2021-11-18 14:20:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师