1

我有一个表单,它将数据发送到服务器。我使用 PHP 脚本处理表单,该脚本可以返回 3 个不同的 JSON 字符串:

exit("{\"success\":\"false\", \"msg\":\"Las claves no cohinciden\"}");

exit("{\"success\":\"false\", \"msg\":\"".$failure->getMessage()."\"}");

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”是未定义的。任何想法 ?

4

2 回答 2

2

当您输出 JSON 以在 AJAX 中使用时,最好为 JSON 设置标头并返回格式正确的 JSON。在下面的示例中,我们使用您的响应创建一个普通的 PHP 数组,并将其转换为带有json_encode().

试试看。我之前遇到过 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。

于 2012-12-26T13:16:10.697 回答
0

你可以使用这个 url 来测试你的 Json 代码:

http://www.utilities-online.info/xmltojson/#.UNr9FhhQ-gY

于 2012-12-26T13:37:13.970 回答