rmm*_*oul 4 javascript php ajax jquery json
这可能是我想念的简单事情,但我一直在谷歌上寻找答案,并没有得到任何工作.
我正在做的事情:
我正在对我的服务器进行ajax调用,以获取一些返回为json的简单数据
我遇到的问题:
我已经尝试了一些方法来访问json数据,但是从"undefined","Uncaught TypeError:无法读取属性......"到"Uncaught SyntaxError:Unexpected token o"都有错误.
我尝试过的:
这是jquery(v1.11.1)ajax调用:
$.getJSON(ajax_url, function(data){
// I've tried the commented out items below
// var data = $.parseJSON(data);
// var data = JSON.parse(data);
// var data = data[0];
alert(data.test);
});
Run Code Online (Sandbox Code Playgroud)
为了使事情变得非常简单,我尝试并且无法访问由以下php返回的非常简单的json:
header('Content-Type: application/json');
$test = array('test' => 'test data');
echo json_encode($test);
exit;
Run Code Online (Sandbox Code Playgroud)
在有人要求之前,我已经仔细检查以确保ajax_url通过将url记录到js控制台来访问正确的页面,并通过在调用脚本时创建错误日志条目来记录php端的访问.
我想要的是什么:
如果有人能让我知道我做错了什么,我会喜欢它,以及我如何轻松地从"测试"键返回"测试数据".
编辑:
运行console.log(data)会提供以下信息:
Object {success: "true"}
Run Code Online (Sandbox Code Playgroud)
编辑编辑:
问题是在我的实际脚本中回显了success => true数组.在添加test =>测试数据之前,我忘了删除它.
tl; dr:您无法访问,data.test
因为您没有收到带有属性的对象test
.您要么输入错误的URL,要么生成的数据与您声明的数据不同.
张女士console.log(data)
输出Object {success: "true"}
告诉你,data
是一个JavaScript对象.证明:
> console.log({success: true});
Object {success: true}
Run Code Online (Sandbox Code Playgroud)
如果它是一个包含JSON的字符串,您会看到:
> console.log('{"success": true}');
{"success": true}
Run Code Online (Sandbox Code Playgroud)
所以,data
是一个具有单个属性的对象success
.您可以通过访问成功值data.success
.它不是包含JSON的字符串,因此您无法解析它.事实上,$.getJSON
已经为你解析了JSON,这就是它的全部目的:
的
success
回调被传递返回的数据,其通常是JavaScript对象或阵列由JSON结构所定义和使用所解析的$.parseJSON()
方法.
它也不是数组,因此您无法访问它的第一个元素(data[0]
).
我已经尝试了一些方法来访问json数据,但是从"undefined","Uncaught TypeError:无法读取属性......"到"Uncaught SyntaxError:Unexpected token o"都有错误.
您遇到语法错误,因为您尝试将JavaScript解析为JSON.复制错误的最简单方法:
> JSON.parse({});
Uncaught SyntaxError: Unexpected token o
Run Code Online (Sandbox Code Playgroud)
那是因为JSON.parse
需要一个字符串.如果参数不是字符串,则将其转换为一个字符串.什么是转换为的对象?
> String({})
"[object Object]"
Run Code Online (Sandbox Code Playgroud)
所以你和你打电话JSON.parse("[object Object]")
,"[object Object]"
并不是有效的JSON.
归档时间: |
|
查看次数: |
1422 次 |
最近记录: |