我的html页面假设从php页面检索数组并提醒数组中的第一个元素。但是当我运行html时,得到以下错误,“未捕获TypeError:对象函数(E,F){return new o.fn.init(E,F)}在控制台窗口中没有方法'parseJSON'”。我试图使用jQuery.parseJSON(json_data)而不是$ .parseJSON(json_data)但仍然得到相同的错误。我该如何解决这个问题?
的script.js:
function getArr(){
alert('return sent');
$.ajax({
url: "n1.php",
type: "GET",
success: function(json_data){
var data_array =jQuery.parseJSON(json_data);
var rec = data_array[0];
alert(rec);
alert("GOOD");
},
error: function() {
alert("BAD");
} });
}
newcal.html:
<!DOCTYPE html>
<html >
<head>
<meta charset="utf-8">
<link rel="stylesheet" media="screen" href="demo.css">
<body onload="getArr();">
<div id="rounded"><div id="main" class="container">
<div id="pageContent">
Hello, this is the default content
</div>
</div>
</div>
</body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
</html>
n1.php:
<?php
$output = array("cat","dog");
echo json_encode($output);
?>
答案 0 :(得分:0)
parseJSON
您正在使用jQuery 1.3.2(自2009年起),这太旧了。
当前版本的jQuery 1.x是1.11(今年发布)。
使用更新版本的jQuery。
您还应告诉浏览器您发送的是JSON,而不是声称您的JSON是HTML。 (PHP默认声称它通过Web服务器输出的任何内容都是HTML)
<?php
header("Content-type: application/json");
$output = array("cat","dog");
echo json_encode($output);
?>
然后让jQuery自动解析它:
success: function(data_array){
// Remove the following line. It will be parsed automatically.
// var data_array =jQuery.parseJSON(json_data);
var rec = data_array[0];