【问题标题】:WordPress plugin admin ajax not working anymoreWordPress插件管理ajax不再工作
【发布时间】:2016-04-28 08:53:00
【问题描述】:

所以我制作了一个 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.");
    }
});

没有错误,在其他网站上它只是工作,所以我不知道从哪里开始寻找解决这个问题。

希望有人能帮帮我。

【问题讨论】:

  • 检查您的脚本是否真的在访问您指定的 url url:“../wp-content/plugins/autocommerce/admin/activatePlugin.php?activate=true”
  • 我该如何测试这个?因为在我测试的其他网站上,代码运行良好。
  • js 中的硬编码网址不是我认为的最佳主意。最好添加类似 在生成 ajax 调用的页面的 php 文件中,并在 ajax 调用中使用 yourUrl 变量
  • 你是对的。这是一个更好的主意。但仍然没有发生任何事情。我确定网址现在可以了
  • 尝试直接访问您的网址,看看它是否会给您任何结果。还可以尝试在 ajax 调用中指明数据类型,这可能是个问题。还要检查该 php 文件的权限。它们是 664 还是 644?

标签: php jquery ajax wordpress


【解决方案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 作为变量并设置附加操作参数,这将是您的函数名称。

【讨论】:

  • 谢谢 我会尝试使用这种方式。不知道有一个标准的 wordpress ajax 方式:)
  • 这对@WouterdenOuden 有用吗?也许你想看看我的问题@Nick Surmanidze。 stackoverflow.com/questions/47219525/…
  • @WosleyAlarico 我实际上并没有使用过这段代码,因为出于某种原因,我的 jquery ajax 再次工作了。我不确定我的问题是什么,但你一定要试试这个答案。希望对你有用
  • 我发现问题与ajax无关,而是更新到4.8.3版本时元查询出现问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 2010-09-18
  • 1970-01-01
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
相关资源
最近更新 更多