Javascript Jquery JSON响应处理

Javascript 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);

我有一个用jQuery编写的ajax查询,它以这种格式返回有效的JSON

$.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。从安全角度看,它似乎确实同样糟糕,但新函数()在解析数据方面更好、更智能,而且速度更快: