AJAX调用-无法加载资源:服务器响应状态为500(内部服务器错误)

时间:2018-06-30 作者:user146122

请帮忙。我有一个使用ajax调用的简单插件。当我调用ajax php函数中的另一个函数时(在下面的示例中,我从update\\u passage\\u list()函数调用get\\u cat()函数),我得到了“加载资源失败:服务器响应状态为500(内部服务器错误)”的错误。

测验。js公司:

$jq =jQuery.noConflict();

$jq(document).ready(function($jq) {
    update_passage_list(32);
});

var update_passage_list = function(id){
    $jq.post(quiz.ajaxURL, {
        action:"update_passage_list",
        nonce:quiz.quizNonce,
        cpid : id
    }, function(return_data) {
        alert(\'Return Data = \' + return_data);
    }, "json");  
};
索引。php:
<?php

/*
  Plugin Name: WP Quiz
  Plugin URI: -
  Description: Plugin description.
  Author: Author Name
  Version: 1.0
  Author URI: url
 */

class WP_Quiz {

    public $plugin_url;

    public function __construct() {
        $this->plugin_url = plugin_dir_url(__FILE__);

        add_action(\'admin_enqueue_scripts\', array($this, \'wpq_admin_scripts\'));

        add_action(\'wp_ajax_nopriv_update_passage_list\', array($this, \'update_passage_list\'));
        add_action(\'wp_ajax_update_passage_list\', array($this, \'update_passage_list\'));
    }

    function wpq_admin_scripts() {
        wp_enqueue_script(\'jQuery\');
        wp_register_script(\'quiz-admin\', plugins_url(\'js/quiz.js\', __FILE__), array(\'jquery\'));
        wp_enqueue_script(\'quiz-admin\');

        $config_array = array(
            \'ajaxURL\' => admin_url(\'admin-ajax.php\'),
            \'quizNonce\' => wp_create_nonce(\'quiz-nonce\'),
            \'plugin_url\' => $this->plugin_url
        );

        wp_localize_script(\'quiz-admin\', \'quiz\', $config_array);
    }

    public function get_cat($id) {
        $new_id = $id + 100;
        return $new_id;
    }

    function update_passage_list() {
        $cpid = $_POST[\'cpid\'];
        $cpid = get_cat($cpid);
        echo $cpid;
        die();
    }
}

$quiz = new WP_Quiz();

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

我正在从update\\u passage\\u list()函数调用get\\u cat()函数

这就是你正在做的:

$cpid = get_cat($cpid);
没有什么可以这么说的get_cat() 是你们班的一种方法。它试图找到一个函数get_cat() 在任何类别之外。使用您需要使用的类的方法$this:

$cpid = $this->get_cat($cpid);

结束

相关推荐

AJAX响应返回html代码而不是用户数据

好的,所以我遇到了一个问题,我禁用了对特定用户角色的默认WP仪表板的访问;但是,这也会禁止对ajax管理员的ajax调用。php端点,这是我尝试做的事情所必需的。如果有人知道这个特定场景的一个有用的解决方法,而不需要完全重新设计,我将不胜感激,因为我没有看到关于这个特定问题的任何信息。提前感谢您!