我有一个js函数,该函数转到spring控制器类中,该类返回一个json对象,其数据如下:
{"prop1":"val1",
"prop2":"val2"}
js函数类似于:
accessValue(a,b,c){
var xmlhttp = new XMLHttpRequest();
alert("This works 1");
xmlhttp.onreadystatechange = function() {
alert("This works 2");
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
alert("This works 3" + xmlhttp.status);//line 1
if (xmlhttp.status == 200) {
var jsonobj = JSON.parse(this.responseText); //line 1
alert("Hi ");
document.getElementById(b).innerHTML = jsonobj.prop1;
document.getElementById(c).innerHTML = jsonobj.prop2;
console.log(jsonobj.prop2);
}
else if (xmlhttp.status == 400) {
alert('There was an error 400');
}
}
};
xmlhttp.open("GET", a + "--spring controller class path --");
xmlhttp.send(null);
}
在函数参数中,b和c是div id,我要使用json对象中的数据进行更新。参数a是一个URL,该URL附加有controller类的spring路径,该类返回运行良好的json对象。
在第1行,我将xmlhttp.status的状态设置为0,这是空响应。在线搜索后,我发现这可能会发生,因为文件可能在本地正确访问,但无法通过服务器访问。在localhost上使用相同的代码效果很好。有没有办法我可以使用正确的http url访问服务器上的spring控制器返回的json对象,并解析数据以更新div?