【问题标题】:Extjs JSON responseExtjs JSON 响应
【发布时间】:2012-12-26 21:37:13
【问题描述】:

我有一个表单,它将数据发送到服务器。我使用 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”未定义。 有什么想法吗?

【问题讨论】:

  • 尝试在 firebug 中使用断点来查看你得到的响应或使用 alert(response.responseText)。我猜,您的回复中没有 responseText。

标签: php ajax json extjs response


【解决方案1】:

当您输出 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。

【讨论】:

  • Ok.Thanks!, but not work :'(。我修改了 PHP 脚本:在第一行添加:header("Content-type: application/json"); 然后,生成 json 字符串的行:$response = array("success" =&gt; "false","msg" =&gt; "Las claves ingresadas no cohinciden.");exit(json_encode($response)); ExtJs 代码未更改:var respuesta = Ext.JSON.decode(response.responseText); console.log(response.responseText); if(respuesta.success == true){ ... } 错误仍然存​​在,并且是相等的。
  • 对不起,但坏行破坏了格式。我不知道正确的写法。
【解决方案2】:

您可以使用此网址来测试您的 Json 代码:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2012-10-30
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 2013-02-02
    • 2011-02-25
    相关资源
    最近更新 更多