微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

if语句为什么不检查下面的http请求的状态?

如何解决if语句为什么不检查下面的http请求的状态?

发送http请求后,我检查状态是否为200,然后resolve() 但是如果声明似乎不起作用

 function getMelumat(){
        let promise = new Promise((resolve,reject)=>{
        let xhr = new XMLHttpRequest();
        xhr.open("GET",'https://jsonplaceholder.typicode.com/posts');
        xhr.send()
        xhr.onload = ()=>{
            if ( this.status == 200){
                resolve(this.response)
            }
            else{
               throw "AN ERROR OCCURED"
           }
          }

        })

     return promise

    }


            getMelumat().then(data=>{
                return JSON.parse(data)
            }).then(data=>{
                console.log(data)
            })

解决方法

检查状态是否为200还不够;您还需要检查this.readyState

标头(带有状态)已经可以在this.readyState == 2上使用,但是整个响应要到this.readyState == 4才会完整。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。