gpt4 book ai didi

javascript - JSON JavaScript 不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 13:31:18 24 4
gpt4 key购买 nike

我开始使用 bootstrap 开发一个 Web 界面,因此我使用 javascript 来接收一些 JSON 数据。我的 JSON-String 是用 JAVA 中的 JSONObjects 构建的,我使用了 Jersey RestFUL-Service。

Java 代码:

@GET
@Path("test")
@Produces(MediaType.TEXT_HTML)
public String createTestJson(){

JSONObject jsobject= new JSONObject();

try {
jsobject.append("test1", "test");
jsobject.append("test2", "test");
jsobject.append("test3", "test");
jsobject.append("test4", "test");
jsobject.append("test5", "test");
jsobject.append("test6", "test");
jsobject.append("test7", "test");

}catch(Exception e){
e.printStackTrace();
}

return jsobject.toString();

}

当我使用浏览器调用该 URL 时,它会起作用:

{"test1":["test"],"test2":["test"],"test3":["test"],"test4":["test"],"test5":["test"],"test6":["test"],"test7":["test"]}

我创建了一个 JavaScript 函数,它应该检索 JSON 字符串并填充 HTML 页面中的某些值。

function loadJSON()
{
var data_file = "http://127.0.0.1:8085/Rest/test/test";
var http_request = new XMLHttpRequest();
try{
// Opera 8.0+, Firefox, Chrome, Safari
http_request = new XMLHttpRequest();

}catch (e){
// Internet Explorer Browsers
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}

http_request.onreadystatechange = function(){
if (http_request.readyState == 4 )
{

alert(http_request.responseText.length);
var jsonObj = JSON.parse(http_request.responseText);

document.getElementById("test1").innerHTML = jsonObj.test1;
document.getElementById("test2").innerHTML = jsonObj.test2;
}
}
http_request.open("GET", data_file, true);
http_request.send();
}

当我用firebug分析文档时,我可以看到GET查询已完成,状态为“200 OK”。查询的答案是JSON字符串。

我还分析了该脚本,它似乎停止工作于:

var jsonObj = JSON.parse(http_request.responseText);

另外我写出了responseText的长度,结果是“0”。

所以我真的不明白这个问题。根据 firebug,脚本获取数据,但在解析 JSON 字符串时崩溃。它可能与长度为 0 的响应文本相关。

--------编辑-----

更多 Firebug 信息:

  1. 收到数据后的XMLHTTPRequest-Object数据:

DONE 4
HEADERS_RECEIVED 2<br/>
LOADING 3<br/>
OPENED 1
UNSENT 0
mozAnon false<br/>
mozBackgroundRequest false
mozSystem false
onloadend null
ontimeout null
readyState 1<br/>
response ""
responseText ""
responseType ""
responseXML null
status 0<br/>
statusText ""<br/>
timeout 0

  • 查询标题 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Encoding gzip, deflate
    Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Connection keep-alive
    Host 127.0.0.1:8085
    Origin null
    User-Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0

  • 响应头 Content-Type application/xhtml+xml
    Date Mon, 24 Aug 2015 22:56:18 GMT
    Server Apache-Coyote/1.1
    Transfer-Encoding chunked

  • 回应: {"test1":["test"],"test2":["test"],"test3":["test"],"test4":["test"],"test5":["test"],"test6":["test"],"test7":["test"]}

    也许你可以帮助我!

    谢谢!

    马可

    最佳答案

    如果您的 JSON 是以 type="application/json 或 XML/HTML 的形式接收的,我会很感兴趣。是否响应是 XML,因此“对象”存储在 http_request.XML 中?

    ----------编辑----------

    我认为您遇到了 Same-Origin-Policy 的问题JS 的。因此,您无法加载您的字段。尝试在 Java 应用程序的 View 中实现 JS(以便您可以通过 http://访问它并与您的应用程序位于同一域中),然后重试。

    关于javascript - JSON JavaScript 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32180947/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com