Admin-ajax.php 400错误请求-我的代码有什么问题?

时间:2018-06-08 作者:David Smith

我从管理员ajax收到400个错误请求。php&;pagespeed insights的警告告诉我这是一个问题。

您能在我们的管理ajax中看到代码中的任何明显问题吗。php文件?

<?php
/**
 * WordPress Ajax Process Execution
 *
 * @package WordPress
 * @subpackage Administration
 *
 * @link https://codex.wordpress.org/AJAX_in_Plugins
 */

/**
 * Executing Ajax process.
 *
 * @since 2.1.0
 */
define( \'DOING_AJAX\', true );
if ( ! defined( \'WP_ADMIN\' ) ) {
    define( \'WP_ADMIN\', true );
}

/** Load WordPress Bootstrap */
require_once( dirname( dirname( __FILE__ ) ) . \'/wp-load.php\' );

/** Allow for cross-domain requests (from the front end). */
send_origin_headers();

// Require an action parameter
if ( empty( $_REQUEST[\'action\'] ) )
    wp_die( \'0\', 400 );

/** Load WordPress Administration APIs */
require_once( ABSPATH . \'wp-admin/includes/admin.php\' );

/** Load Ajax Handlers for WordPress Core */
require_once( ABSPATH . \'wp-admin/includes/ajax-actions.php\' );

@header( \'Content-Type: text/html; charset=\' . get_option( \'blog_charset\' ) );
@header( \'X-Robots-Tag: noindex\' );

send_nosniff_header();
nocache_headers();

/** This action is documented in wp-admin/admin.php */
do_action( \'admin_init\' );

$core_actions_get = array(
    \'fetch-list\', \'ajax-tag-search\', \'wp-compression-test\', \'imgedit-preview\', \'oembed-cache\',
    \'autocomplete-user\', \'dashboard-widgets\', \'logged-in\',
);

$core_actions_post = array(
    \'oembed-cache\', \'image-editor\', \'delete-comment\', \'delete-tag\', \'delete-link\',
    \'delete-meta\', \'delete-post\', \'trash-post\', \'untrash-post\', \'delete-page\', \'dim-comment\',
    \'add-link-category\', \'add-tag\', \'get-tagcloud\', \'get-comments\', \'replyto-comment\',
    \'edit-comment\', \'add-menu-item\', \'add-meta\', \'add-user\', \'closed-postboxes\',
    \'hidden-columns\', \'update-welcome-panel\', \'menu-get-metabox\', \'wp-link-ajax\',
    \'menu-locations-save\', \'menu-quick-search\', \'meta-box-order\', \'get-permalink\',
    \'sample-permalink\', \'inline-save\', \'inline-save-tax\', \'find_posts\', \'widgets-order\',
    \'save-widget\', \'delete-inactive-widgets\', \'set-post-thumbnail\', \'date_format\', \'time_format\',
    \'wp-remove-post-lock\', \'dismiss-wp-pointer\', \'upload-attachment\', \'get-attachment\',
    \'query-attachments\', \'save-attachment\', \'save-attachment-compat\', \'send-link-to-editor\',
    \'send-attachment-to-editor\', \'save-attachment-order\', \'heartbeat\', \'get-revision-diffs\',
    \'save-user-color-scheme\', \'update-widget\', \'query-themes\', \'parse-embed\', \'set-attachment-thumbnail\',
    \'parse-media-shortcode\', \'destroy-sessions\', \'install-plugin\', \'update-plugin\', \'crop-image\',
    \'generate-password\', \'save-wporg-username\', \'delete-plugin\', \'search-plugins\',
    \'search-install-plugins\', \'activate-plugin\', \'update-theme\', \'delete-theme\', \'install-theme\',
    \'get-post-thumbnail-html\', \'get-community-events\', \'edit-theme-plugin-file\',
    \'wp-privacy-export-personal-data\',
    \'wp-privacy-erase-personal-data\',
);

// Deprecated
$core_actions_post_deprecated = array( \'wp-fullscreen-save-post\', \'press-this-save-post\', \'press-this-add-category\' );
$core_actions_post = array_merge( $core_actions_post, $core_actions_post_deprecated );

// Register core Ajax calls.
if ( ! empty( $_GET[\'action\'] ) && in_array( $_GET[\'action\'], $core_actions_get ) )
    add_action( \'wp_ajax_\' . $_GET[\'action\'], \'wp_ajax_\' . str_replace( \'-\', \'_\', $_GET[\'action\'] ), 1 );

if ( ! empty( $_POST[\'action\'] ) && in_array( $_POST[\'action\'], $core_actions_post ) )
    add_action( \'wp_ajax_\' . $_POST[\'action\'], \'wp_ajax_\' . str_replace( \'-\', \'_\', $_POST[\'action\'] ), 1 );

add_action( \'wp_ajax_nopriv_heartbeat\', \'wp_ajax_nopriv_heartbeat\', 1 );

if ( is_user_logged_in() ) {
    // If no action is registered, return a Bad Request response.
    if ( ! has_action( \'wp_ajax_\' . $_REQUEST[\'action\'] ) ) {
        wp_die( \'0\', 400 );
    }

    /**
     * Fires authenticated Ajax actions for logged-in users.
     *
     * The dynamic portion of the hook name, `$_REQUEST[\'action\']`,
     * refers to the name of the Ajax action callback being fired.
     *
     * @since 2.1.0
     */
    do_action( \'wp_ajax_\' . $_REQUEST[\'action\'] );
} else {
    // If no action is registered, return a Bad Request response.
    if ( ! has_action( \'wp_ajax_nopriv_\' . $_REQUEST[\'action\'] ) ) {
        wp_die( \'0\', 400 );
    }

    /**
     * Fires non-authenticated Ajax actions for logged-out users.
     *
     * The dynamic portion of the hook name, `$_REQUEST[\'action\']`,
     * refers to the name of the Ajax action callback being fired.
     *
     * @since 2.8.0
     */
    do_action( \'wp_ajax_nopriv_\' . $_REQUEST[\'action\'] );
}
// Default status
wp_die( \'0\' );
通过单击inspect element,然后在打开network选项卡的情况下刷新,然后单击initiator,我可以在代码旁边看到一个红色的x,这似乎是导致问题的原因。这有什么问题?

此处的代码:

;!function() {
var t, e, n, o = 0, u = function(t, e) {
    return "function" != typeof t || t.replaced ? t : (e.replaced = !0,
    e)
};
if ("undefined" != typeof CustomEvent && "function" == typeof window.dispatchEvent) {
    var r = function(t) {
        try {
            if ("object" == typeof t && (t = JSON.stringify(t)),
            "string" == typeof t)
                return window.dispatchEvent(new CustomEvent("lprequeststart",{
                    detail: {
                        data: t,
                        requestID: ++o
                    }
                })),
                o
        } catch (t) {}
    }
      , s = function(t) {
        try {
            window.dispatchEvent(new CustomEvent("lprequestend",{
                detail: t
            }))
        } catch (t) {}
    };
    "undefined" != typeof XMLHttpRequest && XMLHttpRequest.prototype && XMLHttpRequest.prototype.send && (XMLHttpRequest.prototype.send = u(XMLHttpRequest.prototype.send, (n = XMLHttpRequest.prototype.send,
    function(t) {
        var e = this
          , o = r(t);
        return o && e.addEventListener("loadend", function() {
            s({
                requestID: o,
                statusCode: e.status
            })
        }),
        n.apply(e, arguments) **THIS IS WHERE THE RED X SUGGESTS AN ISSUE**
    }
    ))),
    "function" == typeof fetch && (fetch = u(fetch, (e = fetch,
    function(t, n) {
        var o = r(n)
          , u = e.apply(this, arguments);
        if (o) {
            var c = function(t) {
                s({
                    requestID: o,
                    statusCode: t && t.status
                })
            };
            u.then(c).catch(c)
        }
        return u
    }
    )));
    var c = function(t) {
        return u(t, function() {
            try {
                this.dispatchEvent(new CustomEvent("lpsubmit"))
            } catch (t) {}
            return t.apply(this, arguments)
        })
    }
      , i = function() {
        if (document && document.forms && document.forms.length > 0)
            for (var t = 0; t < document.forms.length; ++t)
                document.forms[t].submit = c(document.forms[t].submit)
    };
    document && "interactive" === document.readyState || "complete" === document.readyState ? i() : window.addEventListener("DOMContentLoaded", i, !0),
    Document.prototype.createElement = u(Document.prototype.createElement, (t = Document.prototype.createElement,
    function() {
        var e = t.apply(this, arguments);
        return e && "FORM" === e.nodeName && e.submit && (e.submit = c(e.submit)),
        e
    }
    ))
}
}

enter image description here

1 个回复
SO网友:David Smith

使用chrome开发工具,我找到了创建http请求的文件。

此文件是主题。min.js,我查看了文件;可以看到“porto\\u refresh\\u cart\\u fragments”,虽然文件已缩小,所以我不知道要删除什么。

在使用网站取消整理文件后,我需要删除的内容更加清晰,因此我从文件中删除了代码,因为网站上没有购物车,所以它已经过时。

管理ajax的http请求。来自porto_refresh_cart_片段的php现在已修复。我只是觉得我应该把这些信息放在这里以备将来参考,以防其他人也遇到同样的问题,虽然这只是因为我们没有购物车才起作用,但它可能会帮助一些人。

结束

相关推荐

特定WordPress页面的JavaScript

我有一个用Wordpress运行的网站。有一个特定的页面,我需要用户上传图片,放大/缩小,并将图片裁剪成圆形打印出来。所有这些都需要通过移动设备完成。我在Github上找到了croppie,并安装了所有文件。但是,脚本不起作用。我认为问题是WP,但尚未在网上找到任何解决方案。J/S和wordpress有问题吗?非常感谢您的帮助!