2014-04-08 50 views
0

我的html頁面假設從php頁面檢索數組並提醒數組中的第一個元素。但是,當我運行的HTML,得到以下錯誤,「Uncaught TypeError:對象函數(E,F){返回新的o.fn.init(E,F)}在控制檯窗口中沒有方法'parseJSON'」。我試圖使用jQuery.parseJSON(json_data)而不是$ .parseJSON(json_data),但仍然有相同的錯誤。我怎樣才能解決這個問題?在使用javascript ajax json檢索php數組時遇到錯誤

的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

這是正常的,你的頭標記你的身體標籤後關閉? ;-) – alexP

+0

哎呀,沒看到,謝謝! – user1887339

回答

0

parseJSON jQuery中1.4.1(2010年)中加入

你是我們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];     
+0

非常感謝你!!!!!!!!標題(「Content-type:application/json」);意味着PHP的返回類型總是JSON? – user1887339

+0

這意味着HTTP響應頭將通知客戶端(例如瀏覽器)HTTP響應正文由JSON組成。 – Quentin

+0

函數(data_array)不會按元素解析元素,它是char by char,所以響應是[「cat」,「dog」]和data_array [0] =「[」,而不是「cat」,你知道我怎麼樣可以修復?謝謝!! – user1887339