概述
WordPress的Ajax请求返回0(Wordpress ajax request return 0)
你好,我有一个WordPress的问题我无法获得ajax电话,我找不到原因。 我的查询一直返回0。
我的JavaScript代码:
updateButton.onclick = function(e){
var donne = {
'action': 'my_action',
'lodges': updateDeleteArray
};
$(function () {
$.ajax({
type: "POST",
data: donne,
url: ajaxurl,
contentType: "application/json",
dataType: 'json',
success: function (data) {
console.log(data);
},
});
});
};
我的php代码:
add_action('wp_ajax_my_action', 'my_action');
add_action('wp_ajax_nopriv_my_action', 'my_action');
function my_action() {
echo 'salut';
die();
}
Hello I have a problem with wordpress I can not get an ajax call and I can not find the reason. My query returns me all the time 0.
my javascript code :
updateButton.onclick = function (e) {
var donne = {
'action': 'my_action',
'lodges': updateDeleteArray
};
$(function () {
$.ajax({
type: "POST",
data: donne,
url: ajaxurl,
contentType: "application/json",
dataType: 'json',
success: function (data) {
console.log(data);
},
});
});
};
my php code :
add_action('wp_ajax_my_action', 'my_action');
add_action('wp_ajax_nopriv_my_action', 'my_action');
function my_action() {
echo 'salut';
die();
}
原文:https://stackoverflow.com/questions/43146923
更新时间:2020-01-13 21:11
最满意答案
尝试删除contentType和dataType ,因为您没有将JSON返回到您的函数中。
要么
像这样修改你的功能
function my_action() {
echo json_encode('salut');
die();
}
希望能帮助到你
Try deleting contentType and dataType, because you are not returning a JSON into your function.
Or
modify your function like this
function my_action() {
echo json_encode('salut');
die();
}
hope it helps
相关问答
最后,我只是自己想出了它。 只需在ajax调用中使用async: false 。 现在它工作正常。 Plus创建一个空变量并在其中存储布尔值,然后在ajax调用之后返回该变量。 这是我以前的代码: require 'nmp_process.php';
add_action('wp_ajax_nmp_process_ajax', 'nmp_process_func');
add_action('wp_ajax_nopriv_nmp_process_ajax', 'nmp_process_f
...
尝试制作POST类型的ajax请求 要么 否则尝试$ _REQUEST而不是$ _POST ,因为默认情况下,Request将是$ _GET类型,导致您的案例出现问题 I got the answer! It was a plugin: Role Scope. It put a restriction on taxonomies, I've uncheck the restriction on this particular taxo and now it works.
在echo语句后使用wp_die()。 以下是Codex的示例代码。 <?php
add_action( 'wp_ajax_my_action', 'my_action_callback' );
function my_action_callback() {
global $wpdb; // this is how you get access to the database
$whatever = intval( $_POST['whatever'] );
$w
...
添加die(); 或exit(); 到你的PHP函数的最后一行,你通过AJAX调用,以防止返回0 。 Add die(); or exit(); to a very last line of your PHP function which you call via AJAX to prevent returning 0.
根据文档http://codex.wordpress.org/AJAX_in_Plugins 你应该有类似的东西 echo $someValue
在wp_die()或die()之前 According to the docs http://codex.wordpress.org/AJAX_in_Plugins you should have something like echo $someValue
before wp_die() or die()
尝试删除contentType和dataType ,因为您没有将JSON返回到您的函数中。 要么 像这样修改你的功能 function my_action() {
echo json_encode('salut');
die();
}
希望能帮助到你 Try deleting contentType and dataType, because you are not returning a JSON into your function. Or modify your funct
...
你的第一种方式总是比Wordpress自己的ajax更快,因为admin-ajax.php处理很多其他事情,如核心管理钩子和其他函数调用,这又使得整个ajax调用非常大。 在第一种方式中,除了自己的功能和输出之外,您不打扰其他任何事情。 这增加了性能。 有没有硬性规定什么使用,你可以更快地做事情的第一种方式,但他们不会与WordPress的核心管理功能挂钩,这可能是某些目的的缺点。 请参阅admin-ajax.php $core_actions_get = array(
'fetch-list',
...
WordPress有一种独特的处理AJAX的方式。 如果您直接向php文件发出请求,那么您不会加载WordPress框架的其余部分,并且您将无法使用许多WordPress特定功能。 在PHP方面,您需要做的是使用如下所示的代码: //for logged in users
add_action('wp_ajax_my_action', 'my_action_callback');
//for not logged in users
add_action('wp_ajax_nopriv_my_act
...
您需要将ajax请求更改为wp-admin / admin.ajax.php。 如果打开该文件,您会发现有一个名为DOING_AJAX的常量设置。 只有对此链接的请求才能避免因为将DOING_AJAX设置为ture而将正常标DOING_AJAX送到浏览器。 实际上你可以像这样调试:visit <?php echo content_url(); ?>/themes/child/get-referral.php?q=xx <?php echo content_url(); ?>/themes/chil
...
最后
以上就是丰富往事为你收集整理的ajax返回request,WordPress的Ajax请求返回0(Wordpress ajax request return 0)的全部内容,希望文章能够帮你解决ajax返回request,WordPress的Ajax请求返回0(Wordpress ajax request return 0)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复