Javascript Jquery JSON响应处理
我有一个用jQuery编写的ajax查询,它以这种格式返回有效的JSONJavascript Jquery JSON响应处理,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我有一个用jQuery编写的ajax查询,它以这种格式返回有效的JSON $.ajax({ type : 'POST', url : 'ajax/job/getActiveJobs.php', success : function(data){ if(data[''] === true){ alert('json decoded'); } $('#waiting').hide(500);
$.ajax({
type : 'POST',
url : 'ajax/job/getActiveJobs.php',
success : function(data){
if(data[''] === true){
alert('json decoded');
}
$('#waiting').hide(500);
$('#tableData').html(data['content']);
$('#message').removeClass().addClass((data.error === true)
?'error':'success').text(data.msg);
if(data.error === true)
$('#message')
},
error : function(XMLHttpRequest, textStatus, errorThrown){
$('#waiting').hide(500);
$('#message').removeClass().addClass('error').html(data.msg);
} })
我认为这是不正确的,因为如果我使用
$('#mydiv').html(data);
我得到所有的数据并显示出来
非常感谢您的帮助将
数据类型设置为json
,这样jQuery将把json转换为JavaScript对象
或者,使用getJSON()
或发送应用程序/json
mime类型。将数据类型设置为json
,以便jQuery将json转换为JavaScript对象
或者,使用getJSON()
或发送应用程序/json
mime类型。数据是json,因此您需要执行以下操作:
success: function (data) {
var newobject = eval(data);
alert(newobject.msg);
}
或者这样做:
$ajax({
url: url,
data: {},
dataType: "json",
success: function (newObject) {
alert(newobject.msg);
}
});
数据是Json,因此您需要执行以下操作:
success: function (data) {
var newobject = eval(data);
alert(newobject.msg);
}
或者这样做:
$ajax({
url: url,
data: {},
dataType: "json",
success: function (newObject) {
alert(newobject.msg);
}
});
将dataType
设置为json
或使用var json=json.parse(data)
手动执行
编辑:
我之所以添加它,是因为有人建议eval
,不要这样做,因为它会直接传递到JSON
对象中,而不需要先执行任何操作,允许脚本直接进入XSS
漏洞。将dataType
设置为json
或使用var json=json.parse(data)
手动执行
编辑:
我之所以添加这一点,是因为有人建议eval
,不要这样做,因为它会直接传递到JSON
对象中,而不首先进行任何处理,允许脚本直接传递到XSS
漏洞中。如果您发布ajax“成功”的完整代码,会有很大帮助处理程序。您在此处发布的内容看起来没有错误,因此一定是其他内容。请尝试发出警报(数据)
,并检查您收到的对象类型。可能它没有被解释为JSON。如果您发布ajax“成功”处理程序的完整代码,将会有很大帮助。您在此处发布的内容看起来没有错误,因此一定是其他内容。请尝试发出警报(数据)
,并检查您收到的对象类型。可能它没有被解释为JSON。不要这样做。评估很糟糕!别担心,我无意使用eval:)尽管我非常感谢您的帮助:)不要这样做。评估很糟糕!别担心,我无意使用eval:)尽管我非常感谢你的帮助:)谢谢Connor Smith,我会在6分钟内接受你的答案,哈哈,当你的问题解决后,我无法接受答案,真奇怪。我不会使用eval()别担心:)再次感谢,它使用:新函数(“return”+data))()代码>如果JSON.parse不可用。Source,jQuery源代码:@Connor我在意识到你没有使用$.parseJSON()
后删除了它(我在想象)。顺便说一句,将字符串传递给new Function()
基本上是一种eval()
@alex。从安全角度看,它似乎确实同样糟糕,但新函数()更好、更智能,在解析数据时,速度更快:谢谢Connor Smith,我将在6分钟内接受你的答案,哈哈,当你的问题解决后,我无法接受答案,真奇怪。我不会使用eval()别担心:)再次感谢,它使用:新函数(“return”+data))()代码>如果JSON.parse不可用。Source,jQuery源代码:@Connor我在意识到你没有使用$.parseJSON()
后删除了它(我在想象)。顺便说一句,将字符串传递给new Function()
基本上是一种eval()
@alex。从安全角度看,它似乎确实同样糟糕,但新函数()在解析数据方面更好、更智能,而且速度更快: