所以我制作了一个WordPress插件,在管理页面中我使用了ajax调用。它适用于我所有的测试人员和服务器,但现在我在一个安装了多个其他插件的大型网站上进行测试。我不知道为什么,但如果按下调用ajax请求的按钮,则不会发生任何事情。
以下是我的ajax调用的代码:
jQuery.ajax({
url: "../wp-content/plugins/autocommerce/admin/activatePlugin.php?activate=true",
method: "POST",
data: { txtAC : txtAC, txtKey: txtKey }
}).done(function(msg) {
if(msg == "success") {
jQuery("#admin_activate").append('<input type="hidden" name="txtActivated" value="true" />');
jQuery("#admin_activate").submit();
} else if(msg == "failed") {
jQuery("#activateError").html("Gegevens onjuist. Controleer uw gegevens en probeer het opnieuw.");
} else if(msg == "notSet") {
jQuery("#activateError").html("Een of meerdere velden zijn onjuist ingevuld.");
} else {
alert(msg);
jQuery("#activateError").html("Er is een fout opgetreden. Probeer het later opnieuw.");
}
});
没有错误,在其他网站上它只是工作,所以我不知道从哪里开始寻找解决这个问题。
我希望有人能帮助我。
答案 0 :(得分:1)
我建议使用wordpress标准ajax而不是对你自己的php文件进行ajax调用:
add_action('wp_ajax_yourfunction', 'yourfunction');
add_action('wp_ajax_nopriv_yourfunction', 'yourfunction');
function nsds_change_password() {
//your functional part goes here
}
Anf然后在ajax调用中使用admin ajax url,可以像这样预先输出:
<script type='text/javascript'> var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>"; </script>
并使用ajaxurl作为变量并设置附加动作参数,这将是您的函数名称。