为什么这个AJAX成功回调永远不会运行?

时间:2014-05-27 20:00:42

标签: php jquery ajax

我已经在 TutsPlus - 30天内的jQuery 练习中停留了2天......第26课

为什么我的ajax成功函数拒绝将结果记录到控制台? 相反,index.php只是将文本回显到网页本身。 这就像一些语法问题阻止了成功回调甚至根本不运行。 其余的代码可以工作(它不依赖于这个特定的回调),但我不想继续,直到我发现错误。

 var Actors = {
    init: function( config ) {
        this.config = config;
        this.bindEvents();
    },

    bindEvents: function() {
        this.config.letterSelection.on('change', this.fetchActors);
    },

    fetchActors: function() {
        var self = Actors;

        $.ajax({
            url: 'index.php',
            type: 'POST',
            data: self.config.form.serialize(),
            dataType: 'json',
            success: function(results) {
                console.log(results);
            }
        });

    }
 };

 Actors.init({
    letterSelection: $('#q'),
    form: $('#actor-selection')
 })

这是我的index.php页面......

<?php

require 'functions.php';

if ( isset($_POST['q']) ) {
    connect();

    $actors = get_actors_by_last_name( $_POST['q'] );

    echo 'index returning your call with ' . $_POST['q'];
    // echo json_encode($actors); return; 
}

include 'views/index.tmpl.php';

?>

1 个答案:

答案 0 :(得分:3)

指定dataType时,例如'json',整个响应都需要符合该类型。

包含其他输出,例如:

echo 'index returning your call with ' . $_POST['q'];

在尝试解析时,响应将无效JSON和jQuery将error