Ajax请求包含JSON-readystate 4,状态0

时间:2019-06-01 12:56:12

标签: javascript html ajax

我正在对网站中包含的JSON文件执行Ajax GET请求。因此,JSON文件包含在单独的工作表中。请求的就绪状态为“ 4”,而状态为“ 0”。因此,请求已发送,但响应文本为空。

我已经验证了JSON数据。 javascript文件会在HTML5页面上应返回的位置返回数据。 错误处理给出就绪状态“ 4”和状态“ 0”。

这是javascript文件的代码,JSON数据正确且经过测试。.HTML5连接也应正常运行,经过测试。.javascript文件将数据插入HTML中正确的元素上。

谁能发现错误?感谢大家!

var xhr = new XMLHttpRequest();                 //create Request Object

xhr.onload = function(){                        //when the Request is loaded, parse it in a responsetext 

if(xhr.status === 200){

    var responseObject = JSON.parse(xhr.responseText);

    var newContent ='';

    for (var i=0; i<responseObject.events.length; i++){

        newContent += responseObject.events[i].color;

        newContent += responseObject.events[i].value;

    }

    document.getElementById("jsonreturn_option").innerHTML = newContent;
}

else{

    document.getElementById("jsonreturn_option").innerHTML = xhr.readyState + "    " + xhr.status  ;

    //readystate is 4, which means that the request has been sent.. 
    //request status is 0, which means that the responsetext is empty.. 
}
};

xhr.open('GET','json/options_form.json',true);
xhr.send(null);                                         //no additional data to be sent

JSON数据文件

{
"events":[

{  "color": "red", "value": "#f00"},
{  "color": "green", "value": "#0f0"},
{  "color": "blue", "value": "#00f"},
{  "color": "cyan", "value": "#0ff"}
]
}

2 个答案:

答案 0 :(得分:0)

尝试使用xhr.onreadystatechange代替xhr.onload,并将xhr.openxhr.send移动到xhr.onload的顶部。让我知道它是否有效。

答案 1 :(得分:0)

1。您需要创建javaweb项目,然后设置一个tomcat服务器

2。将所有文件放入javaweb项目,然后启动tomcat服务器

3.open浏览器类型,例如:http://localhost:8080/javaweb/test.html

因为xhr.open('GET','json / options_form.json',true);无法请求本地文件,必须请求服务器文件