【问题标题】:Always get empty result when call a ajax in my jquery在我的 jquery 中调用 ajax 时总是得到空结果
【发布时间】:2014-10-27 13:44:44
【问题描述】:

我正在为 WooCommerce 创建一个插件

在我的插件 php 文件中,当我使用 jquery ajax 调用 php 文件时,我得到空结果

这是我的 ajax 代码:

jQuery(function() {
    jQuery.ajax({
        url: '<?php echo RAKHSH_WC_QUICK_VIEW_URL ?>/rakhsh-data-for-pop.php',
        success: function(output) {
            alert(output);
        }
    });
});

这是我的 php 文件:

<?php
    $output = 'test';
    return $output;
?>

【问题讨论】:

  • 打开您的控制台并检查网络选项卡 - 请求的状态是什么?
  • echo $output; 不返回。
  • 你希望return 在你的 php 中做什么?
  • 方法不对,应该使用wp_ajax_ action,more info

标签: javascript php jquery ajax wordpress


【解决方案1】:

你应该改变这个:

<?php
    $output = 'test';
    return $output;
?>

到这里:

<?php
    $output = 'test';
    die($output); // or echo or print
?>

返回变量不会将其作为对 ajax 调用的响应返回。

【讨论】:

  • 当然 die 只会停止脚本所在的位置并返回 if return $output; 的值。会在脚本的末尾它会停止并返回值吗?
  • 不,我对所有的 AJAX 调用都使用 die() 并且它工作正常,我更喜欢使用 die 来确保我的脚本有一个端点,但 echo 也可以工作
【解决方案2】:

试试这个

<?php
    $output = 'test';
    echo $output;
?>

【讨论】:

    【解决方案3】:

    你可以试试这个: 创建一个空变量并将数据插入其中。

    var response = '';
    $.ajax({ type: "GET",   
             url: '<?php echo RAKHSH_WC_QUICK_VIEW_URL ?>/rakhsh-data-for-pop.php', 
             async: false,
             success : function(text)
             {
                 response = text;
             }
             return response;
    });
    

    【讨论】:

    • async: false,不会影响返回值。
    • 我忘记退货了。请用新版本重试
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2018-02-09
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多