简体   繁体   English

从文本文件加载 jsondata 时出现空白页面

[英]Blank page when loading jsondata from textfile

I am trying to load names from a html-file consisting of json-data.我正在尝试从由 json-data 组成的 html 文件加载名称。 The problem is that the page is blank/white and no error message in the firefox debugger.问题是页面是空白/白色,并且在 Firefox 调试器中没有错误消息。

the test.html and persondb.html is on the same server. test.html 和 persondb.html 在同一台服务器上。

test.html测试.html

 <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>JSON Exempel</title>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
</head>
<body>

<ul id="person-lista">

</ul>

<script>

$.ajax({
    url: "http://www.mywebbpage.com/ajax/persondb.html", // not the realname
    data: {
        limit: 5,
        name: 'ra'
    },

    success: function (response) {

        var personArray = response.personer;
        for(var i=0; i < personArray.length; i++) {
            var person = personArray[i];
            $('#person-lista').append('<li>' + person.fnamn + '</li>');
        }
    }
});

</script>
</body>
</html>

persondb.html个人数据库.html

{
"personer": [{
    "fnamn": "RACHELLE",
    "enamn": "ZWIEFELHOFER",
    "epost": "rachelle.zwiefelhofer@somefakedomain.nu"
}, {
    "fnamn": "RACQUEL",
    "enamn": "JOH",
    "epost": "racquel.joh@somefakedomain.nu"
}, {
    "fnamn": "RAE",
    "enamn": "BRAVARD",
    "epost": "rae.bravard@somefakedomain.nu"
}, {
    "fnamn": "RAFAEL",
    "enamn": "SAGASTUME",
    "epost": "rafael.sagastume@somefakedomain.nu"
}, {
    "fnamn": "RAISA",
    "enamn": "REINES",
    "epost": "raisa.reines@somefakedomain.nu"
}]
}

is the persondb.html not formatted correctly? persondb.html 格式不正确吗? is that the reason?这就是原因吗? When loading the persondb.html in a browser it look likes the following在浏览器中加载 persondb.html 时,它看起来像下面这样

{ "personer": [{ "fnamn": "RACHELLE", "enamn": "ZWIEFELHOFER", "epost": "rachelle.zwiefelhofer@somefakedomain.nu" }, { "fnamn": "RACQUEL", "enamn": "JOH", "epost": "racquel.joh@somefakedomain.nu" }, { "fnamn": "RAE", "enamn": "BRAVARD", "epost": "rae.bravard@somefakedomain.nu" }, { "fnamn": "RAFAEL", "enamn": "SAGASTUME", "epost": "rafael.sagastume@somefakedomain.nu" }, { "fnamn": "RAISA", "enamn": "REINES", "epost": "raisa.reines@somefakedomain.nu" }] }

Or is it problem with the "same origin policy" ?还是“同源政策”有问题? But the files is on the same server (same folder)但文件在同一台服务器上(同一文件夹)

You need to parse your JSON before you can access it in your loop -您需要先解析 JSON,然后才能在循环中访问它 -

success: function (response) {

    var res = JSON.parse(response);
    var personArray = res.personer;
    for(var i=0; i < personArray.length; i++) {
        var person = personArray[i];
        $('#person-lista').append('<li>' + person.fnamn + '</li>');
    }
}

You have to parse JSON, as EatPeanutButter mentioned, or you have to send a correct Content-Type (application/json) with the response of your html-page.您必须解析 JSON,正如 EatPeanutButter 所提到的,或者您必须使用 html 页面的响应发送正确的内容类型(应用程序/json)。 Your JSON is well formed.您的 JSON 格式良好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM