Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么AJAX成功回调从未运行?_Php_Jquery_Ajax - Fatal编程技术网

Php 为什么AJAX成功回调从未运行?

Php 为什么AJAX成功回调从未运行?,php,jquery,ajax,Php,Jquery,Ajax,在30天的练习中,我被困在TutsPlus-jQuery上2天了。。。第26课 为什么我的ajax成功函数拒绝将结果记录到控制台? 相反,index.php只是将文本回显到网页本身。 这就像一些语法问题阻止了成功回调的运行一样。 代码的其余部分可以工作(它不依赖于这个特定的回调),但我不想继续,除非我发现了什么问题 var Actors = { init: function( config ) { this.config = config; this.b

在30天的练习中,我被困在TutsPlus-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';

?>

当指定
数据类型时,例如
'json'
,整个响应需要符合该类型

通过包括附加输出,例如:

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

响应将不是有效的JSON,jQuery在尝试解析它时将出现
错误。

也添加
错误
回调,并记录返回的内容。很可能是由于服务器上的PHP脚本错误导致调用失败。按
查看控制台。当需要
数据类型:“json”
时,整个响应需要是单个json值。由于
echo'index returning…
,响应将不是有效的JSON。好的,这里有一些智慧,我回到了正轨上-谢谢!(为什么不把它作为一个答案呢?)如果你想重复“index…”之类的话,就把你的数据类型(在你的AJAX函数中)改成HTML。这个问题不值得保留。我可以建议删除吗?