这使用了几天前很好的工作
让我们说这是我的PHP脚本:
echo json_encode (array('stat'=>'ok'));
我向此脚本发送ajax请求:
$.post(base_url+'line/finalize/' , {type:selected_type } , function(data){
bet_inprog = false ;
console.log('-------------------*'+data);
data = $.parseJSON(data);
console.log('-------------------*'+data);
console.log('-------------------*'+data.stat);
}
在萤火虫中我看到它返回
{"stat":"ok"}
在控制台中我得到了
-------------------*{"stat":"ok"}
-------------------*[object Object]
-------------------*undefined
发生了什么事?
答案 0 :(得分:1)
不要试图自己解析JSON,让jQuery去做。如果您设置了正确的标题(Content-type: application/json
),它仍会执行此操作。
如果将第4个参数传递给$.post
,则可以告诉jQuery自动处理解析。
$.post(base_url+'line/finalize/', {type:selected_type}, function(data){
console.dir(data);
console.log(data.stat);
}, 'json');
答案 1 :(得分:0)
删除$ .parseJSON(数据)。你不需要它。如果您的数据如下所示,则需要它:
'{"stat":"ok"}'
我猜测服务器以不同方式包装对象并返回不同的对象。这就是为什么它不能工作但不习惯。
答案 2 :(得分:0)
我不知道发生了什么事!但我通过在另一个变量
中解析我的数据来解决它var parsed = $.parseJSON(data);
console.log(parsed.stat);
答案 3 :(得分:0)
您必须在上面的post请求中指定dataType,它告诉ajax在指定的dataType中执行结果。 $ .post请求中的第四个参数用于指定dataType。即
$.post(base_url+'line/finalize/' , {type:selected_type } , function(data), 'JSON'){
console.log('-------------------*'+data.stat);
}
这可以帮到你。