我正在使用ajax函数学习Wordpress。我的问题是我的请求中的PATH是硬编码是否有任何功能?我无法在我的网站上获取根文件夹。
这是我的代码,它返回错误,因为我的路径不完整:
$.post(document.location.protocol + '//' + document.location.host + '/wp-admin/admin-ajax.php', {action: 'zwap_add_wishlist', postId: 100}, function(response){
alert(response);
});
我得到了这个网址:
http://localhost/wp-admin/admin-ajax.php
我的问题是我的wordpress在这个网址中:
http://localhost/wp/wordpress_tutorial/
我知道函数ajaxurl()但我无法应用它,因为我的文件是在javascript中
答案 0 :(得分:1)
这些应该这样做。
var base_url = window.location.origin;
var host = window.location.host;
var pathArray = window.location.pathname.split( '/' );

或者
var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];

答案 1 :(得分:1)
自WP 2.8以来,在管理头中定义了一个全局变量ajaxurl,用于ajax调用。
答案 2 :(得分:0)
只使用内置功能
add_action('init','my_script_enqueuer');
function my_script_enqueuer() {
wp_localize_script( 'my_voter_script', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
wp_enqueue_script( 'jquery' );
}
然后您的网址将在myAjax.ajaxurl
你可以使用
$.post(myAjax.ajaxurl, {action: 'zwap_add_wishlist', postId: 100}, function(response){
alert(response);
});
尝试这个,让我知道它是否有效 这是参考refrence