在ajax响应之后有url重定向

时间:2018-06-14 07:01:56

标签: php ajax url redirect

我使用以下php代码和ajax。一切正常,但不是只提示消息已经通过的ajax确认消息,我想要一个网址重定向。 任何帮助将不胜感激。

<?php   
// Check if sent
try {
    $sendmailResult = mail($recipient, $subject, $email_content, $headers);
    if( $sendmailResult === TRUE ) {
            returnAndExitAjaxResponse(

            constructAjaxResponseArray(
            TRUE
            )

        );


    } else {
        returnAndExitAjaxResponse(
            constructAjaxResponseArray(
                FALSE,
                'ERROR_AT_PHPMAIL',
                array('error_information'=> error_get_last() )
            )
        );
    }
} catch (Exception $_e) {
    returnAndExitAjaxResponse(
        constructAjaxResponseArray(
            TRUE,
            'ERROR_AT_PHPMAIL',
            array('error_message'=> $_e->getMessage())
        )
    );
}

/*
    Construct ajax response array
    Input: Result (bool), Message (optional), Data to be sent back in array
*/
function constructAjaxResponseArray ($_response, $_message = '', $_json = null) {
    $_responseArray = array();
    $_response = ( $_response === TRUE ) ? TRUE : FALSE;
    $_responseArray['response'] = $_response;
    if(isset($_message)) $_responseArray['message'] = $_message;
    if(isset($_json)) $_responseArray['json'] = $_json;
    return $_responseArray;
}
/*
    Returns in the Gframe ajax format.
    Input: data array processed by constructAjaxResponseArray ()
    Outputs as a html stream then exits.
*/
function returnAndExitAjaxResponse ($_ajaxResponse) {
    if(!$_ajaxResponse){
        $_ajaxResponse = array('response'=>false,'message'=>'Unknown error occurred.');
    }
     header("Content-Type: application/json; charset=utf-8");
    echo json_encode($_ajaxResponse);
    die();
}
?>

1 个答案:

答案 0 :(得分:0)

由于它是ajax,我不认为你可以直接从后端调用重定向它。

我能想到的最好的解决方案(当然可能还有其他解决方案,我不知道但只是给你我的见解)是返回你想要在AJAX响应中重定向的url,然后使用{{1当您的AJAX调用成功时,从javascript重定向。

希望这有帮助。