Javascript Ajax解析json字符串返回未定义,
我正在发送post数据以获取返回的json字符串: 我的JSON字符串:Javascript Ajax解析json字符串返回未定义,,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在发送post数据以获取返回的json字符串: 我的JSON字符串: {"error":false,"success":"Added Website","website_id":"12"} 我的Ajax请求: $('.publsher\u add\u website')。在(“提交”,函数(){ show_loader(); $.ajax({ url:$(this.attr('action'), 类型:$(this.attr('method'), 数据:$(this).serialize(
{"error":false,"success":"Added Website","website_id":"12"}
我的Ajax请求:
$('.publsher\u add\u website')。在(“提交”,函数(){
show_loader();
$.ajax({
url:$(this.attr('action'),
类型:$(this.attr('method'),
数据:$(this).serialize(),
成功:功能(数据){
if(data.success==false){
ajax_错误(data.error);
隐藏加载程序();
}否则{
调试(数据);
console.log(data.error);
console.log(data.success);
console.log(数据、网站id);
location.href=site_url+“publisher/websites?added=“+data.website_id+”#模态验证”;
隐藏加载程序();
}
},
错误:函数(){
隐藏加载程序();
}
});
返回false;
});
现在,当我使用返回的数据时,它们都是未定义的。我使用了:
console.debug(data);
返回上面的json字符串,但如果我尝试单独访问它们:
data.error;
data.success;
data.website_id;
它们都返回为未定义的
,这是为什么?如何修复它?尝试将json字符串解析为json对象以获取值:
data = JSON.parse(data);
尝试将json字符串解析为json对象以获取值:
data = JSON.parse(data);
您没有在
$中提供数据类型
。ajax
,因此ajax将响应视为字符串
,而不是对象。因此,在success
函数中,首先执行以下操作:
success: function(data) {
data = JSON.parse(data);
您没有在
$中提供数据类型
。ajax
,因此ajax将响应视为字符串
,而不是对象。因此,在success
函数中,首先执行以下操作:
success: function(data) {
data = JSON.parse(data);
看起来您没有使用
dataType
,所以可以尝试执行success:function(data){data=JSON.parse(data)
作为成功
函数中的第一件事?啊,愚蠢的错误。谢谢。我现在就回答。我已经把它写成了答案,10分钟后,你就可以接受了。:)
不客气!:)
谢谢伙计。:)
看起来你没有使用数据类型
,所以你能尝试一下成功吗:function(data){data=JSON.parse(data);
作为成功
函数中的第一件事吗?啊,愚蠢的错误。谢谢。我现在就回答。我已经把它写成了答案,10分钟后,你可以接受。:)
不客气!:
谢谢你,伙计。:)