jquery getJSON 为何无法将get到的JSON赋值?
$(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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
前端时间解决了问题,忘了上来终结了
主要原因是因为输出的json中包含部分换行符,未经过处理,到了前台,部分浏览器在parse json的时候就无法正常读取,造成该json无法正常被显示出来,谢谢大家!
解决的方式,我在后台输出json前将换行符强制转换,之后所有的浏览器、parse都可以正确读取,谢谢大家。
我暂时从代码方面看不出来问题。可以试试chrome的断点调试,看看是否JS拿到返回的数据。或者我自己的笨方法就是 console.log(data);
你是不是屏蔽了弹框?
题注是跨域操作的?跨域的话不是这么做的。
PS:
您可以通过使用JSONP形式的回调函数来加载其他网域的JSON数据,如 "myurl?callback=?"。jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
1) 确认返回的JSON数据格式是否是数组格式的
2) @NeoChang 所讲的使用console.log 看下输出的数据内容