jquery getJSON 为何无法将get到的JSON赋值?

发布于 2022-09-02 00:16:38 字数 1495 浏览 27 评论 0

$(document).ready(function () {
    $("button").click(function(){
        $.getJSON("http://xxx.com/api/apiMainnews", function(data){
            $.each(data, function(i,item){
                alert("JSON Data: " + item.ftitle);
            });
        });
    });
});

没写过前端,硬着头皮上,然后我测试的时候发现我跟着jquery的教程写了完全没反应,在浏览器network里面已经看到获得了的JSON数据,但是为何无法赋值给 data ?

html是:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta charset="utf-8">
    <title>test</title>

        <!-- HTML5 Shim 和 Respond.js 用于让 IE8 支持 HTML5元素和媒体查询 -->
        <!-- 注意: 如果通过 file://  引入 Respond.js 文件,则该文件无法起效果 -->
        <!--[if lt IE 9]>
         <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
         <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
      <![endif]-->
    </head>

    <body>
    <button>获得 JSON 数据</button>
      <p id="ftest" name="ftest">
      </p>
        <!--nav-->
        <!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) -->
        <script src="./jquery.min.js"></script>
        <script src="./apit.js"></script>

    </body>
</html>

ps.jquery我用的是1.11

ps.最奇怪的是,有几次我竟然能赋值成功,但是大多数时候失败,网络肯定是没有问题的,何解?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

农村范ル 2022-09-09 00:16:38

前端时间解决了问题,忘了上来终结了

主要原因是因为输出的json中包含部分换行符,未经过处理,到了前台,部分浏览器在parse json的时候就无法正常读取,造成该json无法正常被显示出来,谢谢大家!

解决的方式,我在后台输出json前将换行符强制转换,之后所有的浏览器、parse都可以正确读取,谢谢大家。

浅唱ヾ落雨殇 2022-09-09 00:16:38

我暂时从代码方面看不出来问题。可以试试chrome的断点调试,看看是否JS拿到返回的数据。或者我自己的笨方法就是 console.log(data);

$(document).ready(function () {
    $("button").click(function(){
        $.getJSON("http://xxx.com/api/apiMainnews", function(data){
            console.log(data); //这个位置,看看是否拿到。
            $.each(data, function(i,item){
                alert("JSON Data: " + item.ftitle);
            });
        });
    });
});
荒岛晴空 2022-09-09 00:16:38

你是不是屏蔽了弹框?

胡渣熟男 2022-09-09 00:16:38

题注是跨域操作的?跨域的话不是这么做的。
PS:您可以通过使用JSONP形式的回调函数来加载其他网域的JSON数据,如 "myurl?callback=?"。jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

淡莣 2022-09-09 00:16:38

1) 确认返回的JSON数据格式是否是数组格式的
2) @NeoChang 所讲的使用console.log 看下输出的数据内容

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文