wordpress插件中的ajax错误

Posted

技术标签:

【中文标题】wordpress插件中的ajax错误【英文标题】:ajax error in wordpress plugin 【发布时间】:2015-06-30 11:28:36 【问题描述】:

我正在为 wordpress 编写一个插件。该插件有一个小部件,其中包含一个按钮和文本框。 该按钮具有 onclick 事件。 当该事件发生时,我需要使用 ajax 将文本框数据发布到 php 文件 ajax 代码不返回错误,但 php 不获取数据。

这是我的 JS 文件

 function F()
    
        var x=document.getElementById('last').value;


        jQuery.ajax(
            type: "POST",
            url: 'http://localhost/wordpress/wp-content/plugins/Hovo/Scripts/vote.php',         
            data: x,
            success: function() 
                alert('Sends successfully');
            ,
            error: function(jqXHR, textStatus, errorThrown) 
            alert(errorThrown);
            
        );
    

这是我的 php 文件

<?php
    if(isset($_POST["anun"]))
    
        echo $_POST['anun'];
    
    else
    
        echo "error";
    
?>

请帮忙解决这个问题

【问题讨论】:

你确定本地主机吗?您在 PC 上用于服务器端的是什么?例如我使用 mamp,我的网站在 localhost:8888 或 localhost:3000 【参考方案1】:

在您的 PHP 中,$_POST 需要一个键/值对,而您只在 ajax 中发送一个值。其中 'anun' 将是键,而存储在 x 中的任何内容都是值。

由于您没有将密钥“anun”发送到$_POST,因此它无法返回存储在x 中的值,因为您的if 条件失败。

你应该能够通过稍微改变你的 ajax 调用来纠正这个问题:

function F() 

    var x = document.getElementById('last').value;

    jQuery.ajax(
        type: "POST",
        url: 'http://localhost/wordpress/wp-content/plugins/Hovo/Scripts/vote.php',         
        data:  anun: x ,
        success: function() 
            alert('Sends successfully');
        ,
        error: function(jqXHR, textStatus, errorThrown) 
        alert(errorThrown);
        
    );

为确保您获得正确的 x 值,请尝试在 ajax 调用之前使用 console.log(x); 并检查浏览器控制台以查看它返回的内容。

如果它没有返回正确的值或什么都不返回,请尝试更改:

var x = document.getElementById('last').value;

简单来说:

x = jQuery('#last').val();

【讨论】:

以上是关于wordpress插件中的ajax错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试从 ajax(Wordpress 插件)将 FormData 中的 Blob 发布到 php 时出现 400(错误请求)

Wordpress:在没有插件的情况下集成 Mailchimp 错误请求 400 Ajax URL

WordPress 表创建抛出错误(而不是创建表)

联系表 7 中的占位符 - Wordpress

Slick slider ().slick 不是 Wordpress PHP 的函数

从 WordPress 插件目录获取插件版本号