Ajax return code 400

时间:2018-01-03 作者:Svante

我以前从未在wordpress中使用过ajax,我正试图通过在youtube上观看一些视频教程来发出一个简单的ajax请求,但它总是返回以下错误消息:加载资源失败:服务器响应状态为400(错误请求)

我的javascript(在我自己的模板文件中):

jQuery.ajax({
                url: ajaxurl,
                type: "POST",
                dataType: \'json\',
                data: {
                    action: \'my_action\'
                },

                success: function ( response ) {
                    console.log("success");
                    alert("success");   
                },
                error: function( error ){
                    console.log("error");
                    alert("error");
                }
            });
我的职能。php文件:

<?php



add_action(\'wp_ajax_my_action\', \'insertEmail\');
add_action(\'wp_ajax_nopriv_my_action\', \'insertEmail\');

function insertEmail(){
  echo "<script> alert(\'functions fil\'); </script>"
  die();
}

?>

1 个回复
SO网友:David Sword

下面是我在Wordpress中用于AJAX提交的一个基本片段,它可能会帮助您:

<?php
if (isset($_POST[\'my_theme_ajax_submit\']))
    if ( wp_verify_nonce( $_POST[\'nonce\'], \'my_theme_ajax_submit\' ) )
        my_theme_ajax_submit(); 

function my_theme_ajax_submit() {
    // do something
    // some php code that fires from AJAX click of #fire
    wp_mail( \'[email protected]\', \'my_theme_ajax_submit() fired\', time());
    wp_die();
}
?>

<button id=\'fire\'>Fire Something</button>

<script>
    jQuery(\'#fire\').click(function(){
        jQuery.ajax({
            type: \'post\',
            data: { 
                "my_theme_ajax_submit": "now",
                "nonce" : "<?php echo wp_create_nonce( \'my_theme_ajax_submit\' ); ?>"
            },
            success: function(response) { 
                jQuery(\'#fire\').text("Somthing Done!");
            },
            error: function(response) { 
                jQuery(\'#fire\').text("...error!");
            },
        });
    });
</script>
这可以更好地构建-将脚本容纳在wp_enque_script(), 拥有my_theme_ajax_submit() 状态检查/在早期弯钩处开火,如init (而不是在模板中),或使用适当的wp_ajax_(action) 胡克斯(对我来说似乎从来都不管用)——但它应该会给人一个想法。

结束

相关推荐

将语法更正为html php转换

我犯了一个巨大的错误。我只在一个php标记中编写了一段长代码,现在我必须使用。css这让我非常痛苦。我试图将其转换为php标记,但总是遇到HTTP 500错误。<?php $args = array(\'post_type\' => \'menu\', \'posts_per_page\' => 5, \'post__in\' => $ids, \'post_status\' => \'any\', \'orderby\' => \'post__in\