2016-04-21 132 views
1

這是ajax發佈請求的示例。當它放置在wordpress活動主題目錄之外時它工作。然而,當它在那裏,並且norefresh.php也被上傳時,無論norefresh.php使用什麼確切的補丁(site/themefolder/norefresh.php或服務器補丁或本地補丁norefresh.php或/ norefresh),它都不起作用。 PHP)。根本不起作用。Ajax發佈請求在wp主題目錄中不起作用

有什麼關於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>

回答

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); 
    } 
});