【发布时间】:2012-04-21 02:49:54
【问题描述】:
我无法从我的 php jquery / json / ajax 获得响应。我不断将所有这些不同的教程组合在一起,但我似乎仍然无法将它们全部组合在一起,因为没有一个教程遵循我正在尝试做的事情。
现在我正在尝试将两个数组(因为没有简单的方法来传递关联数组)传递给我的 jquery ajax 函数并提醒它。这是我的代码:
PHP
$names = array('john doe', 'jane doe');
$ids = array('123', '223');
$data['names'] = $names;
$data['ids'] = $ids;
echo json_encode($data);
jQuery
function getList(){
$.ajax({
type: "GET",
url: 'test.php',
data: "",
complete: function(data){
var test = jQuery.parseJSON(data);
alert(test.names[0]);
alert("here");
}
},
"json");
}
getList();
在我的 html 文件中,我真正调用的是用于调试目的的 javascript 文件。我知道我正在返回一个对象,但在我的名称部分出现空值错误,我不知道为什么。我错过了什么?
我的 PHP 文件返回
{"names":["john doe","jane doe"],"ids":["123","223"]}
好像到这里就结束了
Uncaught TypeError: Cannot read property '0' of undefined
所以我的 sub0 杀了我。
【问题讨论】:
-
当我尝试解决这些问题时,我将其分为两个:服务器端和客户端。第 1 步:您的服务器是否以您期望的格式返回 JSON 对象?尝试在浏览器中点击 /test.php 并检查 JSON 响应。如果看起来不错,则在您的 JS 回调中输出 JSON 字符串。
-
我认为在 $.ajax 中你必须在末尾设置 dataType: 'json' 而不是 'json' (你在 $.get OR $.post 中的做法)
-
我的 php 文件对我来说似乎很好。除了警报之外,我将如何输出我的 json 以查看它的外观?
-
在您的调试器、Firebug 或 Chrome 开发人员中,访问 NET 选项卡并查找您的请求。在“响应”或“JSON”部分,您可以看到服务器发送回浏览器的内容。
-
浏览器保留在获取 php 生成的文件(JSON、CSS、XML 等)时如果没有获取内容类型的权利。你应该总是在你的 json_encode 函数之前写这个: header('Content type: application/json');这米
标签: php javascript jquery html json