Jquery $.ajax上的$.parseJSON-解析响应时出现问题
我不知道为什么,但是我在使用Jquery $.ajax上的$.parseJSON-解析响应时出现问题,jquery,json,parsing,Jquery,Json,Parsing,我不知道为什么,但是我在使用$时遇到了一个问题。在进行ajax调用时,我需要检查响应是否包含JSON,然后继续使用$对其进行解析。如果它不包含任何JSON,那么它将在元素中打印响应(响应将包含一些HTML) 然后我测试了eval是否可以做任何事情,当然可以,但我不想为此使用eval 我得到的代码是: $.ajax({ url: 'ajax.php', success: function(response) { var msg = $.parseJSON(
$时遇到了一个问题。在进行ajax调用时,我需要检查响应是否包含JSON,然后继续使用$对其进行解析。如果它不包含任何JSON,那么它将在元素中打印响应(响应将包含一些HTML)
然后我测试了eval
是否可以做任何事情,当然可以,但我不想为此使用eval
我得到的代码是:
$.ajax({
url: 'ajax.php',
success: function(response)
{
var msg = $.parseJSON(response);
//alert(typeof(response)); <-- returns 'string'
//alert(typeof(msg)); <-- returns 'object'
//alert(msg.error); <-- this doesn't work at all.
//eval(response) <-- returns [object Object]
if(msg.error !== '')
{
ajaxWindow.html(msg.error);
}
else
{
ajaxWindow.html(response).hide().slideDown('slow');
}
}
});
您有一个数组,因此需要通过第一个索引访问它
而不是:
alert( msg.error );
做:
如果可能,请使用$.post。它将内容类型设置为HTML automagicly。我以前遇到过一些类似的奇怪问题,在那种情况下,msg=jQuery.parseJSON(response);您确定ajax.php与发出请求的URL位于同一目录中吗?请发布您试图解析的JSON。当您尝试警报(msg)
时,您会得到什么?typeof
为许多不同的类型提供了“object”
。啊,是的,现在我注意到就在你的答案发布之后,[{}]
-数组对象,{}
-对象。jQuery API文档应该已经包含在文档中了!:PI试图在javascript中解析{“result”:“success”,“msg”:“success”}
,但当我打印数据时,我得到的值是未定义的???
alert( msg.error );
alert( msg[0].error );