使用javascript ajax json检索php数组时出错

时间:2014-04-08 13:38:47

标签: javascript ajax json

我的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);
?>

1 个答案:

答案 0 :(得分:0)

在jQuery 1.4.1(2010年)中添加了

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];