JavaScript HTTP 请求失败

2024-06-28

有人可以看一下下面的代码帮助我找出我做错了什么吗?我收到这个错误

错误 XMLHttpRequest {readyState:1,超时:0,withCredentials: false,上传:XMLHttpRequestUpload,responseURL:“”…}

当我试图向 NASA 图片库请求获取图像时..

HTML:

<img id="map" src="" alt="image from NASA"> 

JS:

var get = function(url){
    return new Promise(function(resolve,reject){
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function(){
            if(xhr.readyState === 4 && xhr.status == 200){
                var result = xhr.responseText;
                result = JSON.parse(result);
                resolve(result);
            }else {
                reject(xhr);
            }
        }
        xhr.open("GET",url,true);
        xhr.send(null);
    })
}

get('https://api.nasa.gov/planetary/apod?api_key=NNKOjkoul8n1CH18TWA9gwngW1s1SmjESPjNoUFo'
)
.then(function(response){
    console.log("success",response);
    document.getElementById('map').src = response.url;
})
.catch(function(err){
    console.log('error',err)
})

您的 else 语句位置错误

ajax 请求会经历这些不同的状态

State  Description
0      The request is not initialized
1      The request has been set up
2      The request has been sent
3      The request is in process
4      The request is complete

The readyState当这些状态发生变化时,事件将会触发,这就是为什么当请求完成并且我们有返回的数据时,我们检查第四个状态是否是触发回调的状态。

您正在使用将触发的 else 语句1,或任何状态,除了4真的,但是1是第一个readyState,第一次建立请求时,要等到到达第四个readyState

var get = function(url){
    return new Promise(function(resolve,reject){
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function(){
            if(xhr.readyState === 4) {
                if (xhr.status == 200) {
                    var result = xhr.responseText;
                    result = JSON.parse(result);
                    resolve(result);
                }else {
                    reject(xhr);
                }
            }
        }
        xhr.open("GET",url,true);
        xhr.send(null);
    })
}

FIDDLE https://jsfiddle.net/murtx6za/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript HTTP 请求失败 的相关文章

随机推荐