ajax在wordpress中发送400错误请求错误

Posted

技术标签:

【中文标题】ajax在wordpress中发送400错误请求错误【英文标题】:ajax sending 400 bad request error in wordpress 【发布时间】:2018-07-19 06:35:12 【问题描述】:

大家好,我正在尝试在 wordpress 中使用 ajax,但遇到了一些问题。我的代码在控制台中给了我一个错误,因为

    jquery-3.3.1.js:9600 GET http://localhost/wordpress/wp-admin/admin-ajax.php 400 (Bad Request)
send @ jquery-3.3.1.js:9600
ajax @ jquery-3.3.1.js:9206
(anonymous) @ main.js?ver=1:27
dispatch @ jquery-3.3.1.js:5183
elemData.handle @ jquery-3.3.1.js:4991

我查看了源代码,它向我显示了这一行的错误

xhr.send( options.hasContent && options.data || null );

这是我的 jquery

$('#retrieve_users').click(function() 

    $.ajax(
            type: "GET",
            url: scriptData.ajaxurl,
            action : 'retrieveUsersData',
            dataType: "html",   //expect html to be returned                
            success: function(response)
                                
                $("#users_data").html(response); 
                //alert(response);
            
        );
);

这是我在functions.php文件中的php代码

function retrieveUsersData()

echo "ajax responding";


add_action('wp_ajax_retrieveUsersData','retrieveUsersData');
add_action('wp_ajax_nopriv_retrieveUsersData', 'retrieveUsersData');

这是我的 html

<button id="retrieve_users">Watch Users</button>
                <div id="users_data"></div>

请帮忙!!我不知道如何使用 wp_enque_scripts 在 wordpress 中导入 jquery src 链接,所以我将 with jquery src 直接粘贴到 html 中。我希望它不会造成问题

请帮助.. 我真的很感激。谢谢

【问题讨论】:

$.ajax 没有 action 属性。您需要在请求中传递它,大概作为 URL 的一部分,具体取决于您的路由配置方式 我不确定,但我的做法是使用 POST 并在 body 对象中传递 action 键。 如果可能的话,请您建议代码。我有点困惑。谢谢!! 【参考方案1】:

更改您的代码以使用 POST 并在请求正文中使用操作键:

jQuery.ajax(
            url: scriptData.ajaxurl,
            type: "POST",
            dataType: 'html',
            data: 
                action: 'retrieveUsersData'
            ,

            ...
);

您还应该在函数中使用wp_die() 以防止0 被回显。

function retrieveUsersData()
    echo "ajax responding";
    wp_die();

【讨论】:

@NageshKatna 很高兴我能提供帮助。你也可以接受答案(不仅仅是竖起大拇指);) 是的@AnatoliiBivol 我正在这样做.. stakoverflow 不允许我在 3 分钟内这样做.. 所以等待 3 分钟完成.. 哈哈!!

以上是关于ajax在wordpress中发送400错误请求错误的主要内容,如果未能解决你的问题,请参考以下文章

web前端 ajax请求报415/400错

Wordpress:在没有插件的情况下集成 Mailchimp 错误请求 400 Ajax URL

尝试从 ajax(Wordpress 插件)将 FormData 中的 Blob 发布到 php 时出现 400(错误请求)

发送 ajax 请求 django 时出现 400 错误

在 Jquery Ajax POST 中获取 400 错误请求错误

错误 400 错误请求 AJAX (WCF)