这是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;
答案 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);
}
});