好的,所以我试图通过一个正常工作的插件在Wordpress中传递一个AJAX调用,但是下面这个Javascript在数据传递给下面的函数后不会回到原始页面。我错过了什么?
// JavaScript Document
jQuery(document).ready(function($) {
// We'll pass this variable to the PHP function outofoffice_ajax_request
id_numbers = new Array();
// This does the ajax request
$.ajax({
type: "get",
url: myAjax.ajaxurl,
dataType : "json",
data: {
action:"outofoffice_ajax_request",
outofoffice_value : outofoffice_value,
aid : aid
},
success:function(response){
// This outputs the result of the ajax request
id_numbers = response;
$("#outofoffice").html(response);
window.location.reload(true);
}
.error(function() {
alert("Your out of office settings could not be updated.");
})
})
});
返回“值已设置!”来自这个功能;
function outofoffice_ajax_request() {
// The $_REQUEST contains all the data sent via ajax
if ( isset($_REQUEST['outofoffice_value']) ) {
$outofoffice = $_REQUEST['outofoffice_value'];
$aid = $_REQUEST['aid'];
if($_REQUEST['outofoffice_value']=='true'){
update_user_meta($aid, 'si_office_status', 'false');
}
else{
update_user_meta($aid, 'si_office_status', 'true');
}
echo "value is set!";
die();
}
die();
}
答案 0 :(得分:1)
没有必要做
if(response.type == "success"){
阻止,因为这已经通过成功回调来确定,如果发生错误,它将无法到达该块并进入你想要的if语句,而是你应该同时拥有成功的回调和像这样的错误回调:
success: function(data) {
// Your success here
},
error: function() {
// Your error handler here
}
这可能就是你遇到麻烦的原因。