Extjs JSON response


Extjs JSON response

我有一个表单,它向服务器发送数据。我用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