【问题标题】:Failure to return JSON Object with AJAX无法使用 AJAX 返回 JSON 对象
【发布时间】:2011-06-22 00:36:08
【问题描述】:

(请注意我使用的是 Kohana 3.1.0,因此框架会自动路由以下所有 url)

我正在使用以下(jQuery)从 index.php/functions/submit 请求一个 JSON 对象

    <script type="text/javascript">
        $(document).ready(function(){
            $("#submit_enemy").submit(function(e){
                e.preventDefault();
                var query = $(this).serialize();
                $.getJSON('http://arflux-rpg.com/game/index.php/functions/submit', query, function(data){
                    if (data.success == true)
                    {
                        $('#messages').HTML("<div style='color: #00CE06;'>Success. Enemy \'" + data.name + "\' created.</div>");
                    }
                    else
                    {
                        $('#messages').HTML("<div style='color: #f00;'>Error: " + data.err + "</div>");
                    }
                });
                $('#messages').show(500).fadeOut(1000);
                $('#form_content').show(500);
            });
        });
    </script>

当 URL 被路由时,会导致下面的 PHP 代码:
http://pastie.org/2104063

我有什么遗漏吗?

【问题讨论】:

  • 任何错误信息?某处?您是否仅使用相对 URL 尝试过?
  • 你能描述一下发生了什么吗?
  • 很高兴看到回复
  • 就是这样,没有任何反应。另外,我尝试过使用相对 URL,结果相同。
  • 请求真的发送了吗?是否超时?或者 HTTP 响应码是什么?

标签: php jquery json kohana ajaxcontroltoolkit


【解决方案1】:

您的后端似乎找不到要渲染的正确视图:

throw new Kohana_View_Exception('The requested view :file could not be found', array( //etc

【讨论】:

    【解决方案2】:

    您已扩展模板控制器 (Controller_Template),该控制器会引发异常,因为它找不到名为“模板”的视图文件(默认)。 (我在浏览器中访问了 json URL 来看到这个)

    切换到仅扩展 Controller 应该可以解决它。

    【讨论】:

    • 或者将auto_render属性设置为FALSE。
    【解决方案3】:

    在 action_submit 函数中,您必须设置 $this-&gt;auto_render = false;

    您可以使用响应对象,而不是回显生成的 json 对象:$this-&gt;response-&gt;body(json_encode($return));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 2013-07-27
      • 1970-01-01
      相关资源
      最近更新 更多