【问题标题】:Ajax returning the success value as -1Ajax 将成功值返回为 -1
【发布时间】:2011-02-10 12:08:55
【问题描述】:

下面是我正在使用的代码。当我用来返回一些值时,它返回为-1。请告诉我我在哪里犯了错误或指导我代码中的 pbm 是什么!

Javascript:

$j = jQuery.noConflict();
$j.ajax({
url:"<?php echo admin_url( 'admin-ajax.php' ); ?>",
type:"POST",
data:"action=market_place_youtube_validator&id="+code,
success:function(data){$j("#loading").hide();$j("#mine").append(data);}
});

PHP (admin-ajax.php):

function market_place_youtube_validator()
{
echo "Yes Youtube is right";
}

【问题讨论】:

  • 您的代码在查询中出现错误google_video,在函数名称中出现youtube
  • 对不起,我在那里拼错了。现在我改变了。但它的回报是一样的!
  • 在你的 ajax 回调中添加一个 die 语句。在回调中回显是正确的,但您需要在回调结束时使用dieexit。例如。 die();exit; 在你的 echo 语句之后。
  • 什么是“返回”?您确定您正确使用了“退货”一词吗?你能告诉我们-1来自哪里吗?
  • 你能告诉我们整个 admin-ajax.php 吗?

标签: php ajax wordpress


【解决方案1】:

您在 javascript 中使用 PHP (echo "Yes Youtube is right";)。要返回一个值,您需要执行 return "Yes Youtube is right";

【讨论】:

  • 即使我使用 return 也只返回 -1!
  • 不,他在 Javascript 之后发布了 PHP,因此将它们分解为一个代码块。
  • 对不起。我没听懂你..你能把我说清楚吗??
  • 抱歉问题已解决。在 wordpress 中,ajax 默认返回 die() 函数。它附加了我们生成自定义的数据。所以我们必须在自定义 ajax 函数调用中使用 die()。
【解决方案2】:

你的functions.php中有这个吗?

add_action('wp_ajax_nopriv_market_place_youtube_validator', 'youtube_validator');

其中 wp_ajax_nopriv_[你的操作参数名称]

$j = jQuery.noConflict();
$j.ajax({
url:"<?php echo admin_url( 'admin-ajax.php' ); ?>",
type:"POST",
data:"action=market_place_youtube_validator&id="+code,
success:function(data){$j("#loading").hide();$j("#mine").append(data);}
});
function youtube_validator()
{
echo "Yes Youtube is right";
}

【讨论】:

    【解决方案3】:

    我认为你必须在输出回显到浏览器后调用 die 或 exit 以防止返回值 -1

    【讨论】:

    • 嗨。已经指出了。查看全文。无论如何感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多