我使用onload()和ajax从php获取数组,但它没有用。 html页面应该能够从n1.php和警报中获取数组(" GOOD"),但它没有给出任何响应,甚至没有提示GOOD或BAD,所以我真的不知道什么& #39;代码错了。我该如何解决这个问题?
n1.html:
<!DOCTYPE html>
<html>
<body onload="getArr();">
here
</body>
<script type="text/javascript">
function getArr(){
alert('return sent');
$.ajax({
url: "n1.php",
dataType: 'json',
success: function(json_data){
var data_array = $.parseJSON(json_data);
var rec = data_array[0];
alert("GOOD");
},
error: function() {
alert("BAD");
}
});
}
</script></html>
n1.php:
<?php
$output = array("cat","dog");
echo json_encode($output);
?>
答案 0 :(得分:1)
请求必须包含请求的类型。此外,dataType指的是您要发送的数据,只要您不发送任何数据,此处就不需要。 试试这个:
$.ajax({
url: "n1.php",
type: "GET",
success: function(json_data){
var data_array = $.parseJSON(json_data);
var rec = data_array[0];
alert("GOOD");
},
error: function() {
alert("BAD");
}
});
答案 1 :(得分:1)
试试这个
$.ajax({
url: "n1.php",
dataType: 'json',
success: function(json_data){
var data_array = json_data; // Do not parse json_data because dataType is 'json'
var rec = data_array[0];
alert("GOOD");
},
error: function() {
alert("BAD");
}
});
现在,有两点需要注意:
您尚未在ajax中传递HTTP方法,但默认情况下它是GET
,如上所述here in jQuery AJAX docs。如果不是GET
,请传递适当的方法类型。
由于您已将dataType
作为&#39; json&#39;发送,因此您无需解析成功处理程序中的响应中收到的json。