我有一个表单,它向服务器发送数据。我用PHP脚本处理表单,它可以返回3个不同的JSON字符串:
exit("{"success":"false", "msg":"Las claves no cohinciden"}");
两个
exit("{"success":"false", "msg":"".$failure->getMessage().""}");
3
exit("{"success":"true","msg":"El usuario: $nombreUsuario ha sido dado de alta correctamente."}");
第一个和第二个字符串是要显示的错误。第三个字符串是正常情况。当脚本返回其中一些值时,我用ExtJs捕获响应:
var respuesta = Ext.JSON.decode(response.responseText);
但是,什么时候呢:
console.log(respuesta);
Firebug控制台说"respuesta"是未定义的。你知道吗?
当您输出JSON以便在AJAX中使用时,最好为JSON设置报头并返回格式正确的JSON。在我下面的例子中,我们用您的响应创建了一个普通的PHP数组,并使用json_encode()
将其转换为JSON。
试试。在没有适当的内容类型和格式之前,我遇到过Javascript不接受字符串作为JSON的问题。
<?php
$response = array("success" => "false", "msg" => "Las claves no cohinciden");
header("Content-type: application/json");
exit(json_encode($response));
?>
可选,如果你有jQuery…您可以使用$.parseJSON('your string');
从字符串输出JSON。
你可以使用这个url来测试你的Json代码:
http://www.utilities-online.info/xmltojson/.UNr9FhhQ-gY