无法使用AJAX返回JSON对象

时间:2011-06-22 00:36:08

标签: php jquery json kohana ajaxcontroltoolkit

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

我正在使用以下(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

我有什么遗失的吗?

3 个答案:

答案 0 :(得分:1)

看起来您的后端无法找到正确的渲染视图:

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

答案 1 :(得分:0)

您已经扩展了模板控制器(Controller_Template),因为它无法找到名为“template”的视图文件(默认值),因此会抛出异常。 (我在浏览器中访问了json URL以查看此内容)

切换到仅展开Controller应修复它。

答案 2 :(得分:0)

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

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