【发布时间】:2013-05-22 09:01:13
【问题描述】:
我在 Stackoverflow 中看到了一些其他相关的帖子。尝试了该代码,但对我没有用。
实际上,我的 MYSQL 数据库中有一个包含 2 张女演员图像的数据库。我正在使用 PHP 生成 JSON 数据,它工作正常。
我正在尝试使用 Javascript 解析它,如this fiddle所示
var json = [{
"id": "1",
"url": "http:\/\/i.imgur.com\/J8yqh3y.jpg"
}, {
"id": "2",
"url": "http:\/\/i.imgur.com\/WNx9i2c.jpg"
}];
var nazriya = json;
$.each(nazriya, function (index, nazriya_nazim) {
$('#url-list').append('<li>' +
'<h4>' + nazriya_nazim.url + '</h4>' +
'</li>');
});
而且效果很好。
但是,如果我尝试从位于我的域中的 PHP 文件中解析它。它不显示任何内容。它显示空白页。
FIDDLE Link : Parsing JSON data on PHP File
type: "POST",
dataType: 'json',
url: "http://chipap.com/apps/nazriya_nazim/test1.php",
success: function (data) {
alert("1");
//var obj = jQuery.parseJSON(idata);
var json = JSON.parse(data);
$.each(json, function (index, nazriya) {
$('#url-list').append('<li>' +
'<h4>' + nazriya.url + '</h4>' +
'</li>');
});
}
所有这些代码都不是我自己编写的。浏览堆栈并找到解决方案。但在最后一步卡住了(从我服务器中的 PHP 文件解析)。
正如@DaGLiMiOuX 所说,在单独的 HTML 文档中进行了尝试。
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script>
$.ajax({
type: "POST",
dataType: 'jsonp',
url: "http://chipap.com/apps/nazriya_nazim/test1.php",
success: function (data) {
alert("1");
var json = data;
$.each(data, function (index, nazriya) {
$('#url-list').append('<li>' +
'<h4>' + nazriya.url + '</h4>' +
'</li>');
});
},
error: function(jqXHR, status, errorText) {
alert('Status code: ' + jqXHR.status +
'\nStatus text: ' + status + '\nError thrown: ' + errorText);
}
});
</script>
</head>
<body>
<ul id="url-list"></ul>
</body>
现在它也显示相同的错误。
【问题讨论】:
-
不要使用
JSON.parse。您将在成功函数 (data) 中接收到的数据已经是一个对象。 -
@DaGLiMiOuX 我是这个 JSON 的新手,能否请你说的更具体一点。
-
当然。你得到了
var json = JSON.parse(data);。你必须设置它var json = data;,但你已经有data,所以这不是必需的。只需调用您的$.each(json, function (index, nazriya)您的data变量,就像这样$.each(data, function (index, nazriya)尝试并报告,请。这应该有效。 -
@DaGLiMiOuX 仍然没有变化。检查小提琴:jsfiddle.net/dj8LR/2 更改了第 6 行和第 7 行