Ajax post请求在wp主题目录中不起作用

时间:2016-04-21 23:37:13

标签: jquery ajax wordpress http-post

这是ajax post请求的示例。它放在wordpress活动主题目录之外时工作。但是当它在那里并且norefresh.php也被上传到那里它无法工作,无论我使用norefresh.php的确切补丁(site / themefolder / norefresh.php或服务器补丁或本地补丁norefresh.php或/ norefresh.php)。根本不起作用。

是否存在阻止执行的wordpress。我该怎么办?



$.ajax({
type: "POST",
url: "norefresh.php",
data: reqdata,
cache: false,
success: function(html) {
//document.getElementById('myTextarea').value = html;
alert(html);
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:3)

您可以允许使用htaccess访问特定文件,但如果您移动网站等,这对您的客户来说会很痛苦吗?

最好只是从你的插件或主题挂钩功能。那你就不用担心相对的uris了。 (js中的一些细微差别,但除了几乎相同之外)

add_action( 'wp_ajax_custom_hook', 'custom_function' );
add_action( 'wp_ajax_nopriv_custom_hook', 'custom_function' ); //-->front end hook...

function custom_function(){

    // handle code...
}

add_action('wp_head','define_ajaxurl'); //--> define ajaxurl using php so we can neatly place all js in js file

function define_ajaxurl() {
    ?>
    <script type="text/javascript">
    var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
    </script>
    <?php
}

JS

$.ajax({
    type: "POST",
    url: ajaxurl, //-->see php function hooked to wphead to define this!!
    //data: reqdata, //--> need also to pass the action....which is the hook!! 
    data: {
        action: 'custom_hook', //-->name of hook used as above..ie. wp_ajax_nameofhook...
        'otherfield': 'yea'
    }

    cache: false,
    success: function(html) {
    //document.getElementById('myTextarea').value = html;
    alert(html);
    }
});