问题描述
我特别是 jQuery 和 AJAX 比较新。我有一个小问题,返回值总是为 0,虽然我认为这实际上是成功的消息,它没有返回任何东西。
我已经浏览了 Google 的节目,我在 PHP 回调中使用了 die() 函数,我相信 add_actions 是正确的。
我在一个本地的主机工作,虽然我怀疑这影响到它,这一切都在管理,而不是前端。我还检查了 js 是入队和本地化的。
我在 chrome 开发者区域收到 200 OK 消息。
我还测试了 http://codex.wordpress.org/AJAX_in_Plugins 的基本 AJAX,并且还返回 0,这使我想知道它是否与下面的代码不同。
现在我只是想把它发回给 jQuery 。任何帮助将不胜感激。
jQuery
jQuery(document).ready(function(){
jQuery('.cl_link_buttons').val('id').click(function() {
var currentid = jQuery(this).attr('id');
//alert(currentid);
console.log(currentid);
jQuery.ajax ( data = {
action: 'cleanlinks_ajax_get_post_data',
url: ajaxurl,
type: 'POST',
dataType: 'text',
"currentid" : currentid
});
jQuery.post(ajaxurl, data, function(response) {
var dataz = response;
alert( dataz );
console.log (dataz); //show json in console
});
return false;
}); //end click event
}); //end doc ready
PHP
add_action("wp_ajax_cleanlinks_ajax_get_post_data", "cleanlinks_ajax_get_post_data");
add_action("wp_ajax_nopriv_cleanlinks_ajax_get_post_data", "cleanlinks_ajax_get_post_data");
function cleanlinks_ajax_get_post_data() {
$from_ajax = $_POST['currentid'];
echo "do" . $from_ajax . "something";
die();
}
最佳解决方案
0
响应意味着该操作未设置 (在 ajax 数据中) 或该动作的回调函数无法找到。
次佳解决方案
您需要做的是在函数的末尾添加 die();
。
看到原因和更多在这里:http://codex.wordpress.org/AJAX_in_Plugins
笔记:
-
在执行
die
之前,应该使用echo
。这将防止服务器错误,并在调试时有所帮助。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。