AJAX调用不显示原始页面或刷新它

时间:2013-11-26 06:28:51

标签: javascript jquery ajax wordpress refresh

好的,所以我试图通过一个正常工作的插件在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();   
}

1 个答案:

答案 0 :(得分:1)

没有必要做

 if(response.type == "success"){

阻止,因为这已经通过成功回调来确定,如果发生错误,它将无法到达该块并进入你想要的if语句,而是你应该同时拥有成功的回调和像这样的错误回调:

success: function(data) {
    // Your success here
},
error: function() {
    // Your error handler here
}

这可能就是你遇到麻烦的原因。