我为我糟糕的英语道歉:)
我正在使用ajax请求执行php文件。 json响应的格式为。但在某些情况下可以重定向。在这种情况下,我想要重定向页面。
你能帮我吗?感谢的。示例PHP文件:
<?php
$status = $_POST['status'];
if($status == 'a'){
// return json response
}else{
echo "<form action='http://www.url.com'>..</form><script type='text/javascript'>form.submit();</script>";
}
?>
示例JS文件:
$.ajax({
type: "POST",
url: 'http://www.my_php_file.com'
});
答案 0 :(得分:1)
试试这个。
url: "http://www.my_php_file.com",
success: function(data) {
document.location.href='YouNewPage.php';
}
答案 1 :(得分:1)
使用成功函数https://api.jquery.com/jQuery.ajax/
$.ajax({
type: "POST",
url: 'http://www.my_php_file.com'
data: { status : statusVar },
success: function(response){
if (response.status == 'a'){
$( "#results" ).append( response);
}else{
window.location = 'http://www.url.com'
}
});
});
答案 2 :(得分:-1)
还要将您想要回显的html作为JSON返回:
if($status == 'a'){
// return json response
} else {
echo json_encode(array("redirect" => "<form action='http://www.url.com'>..</form><script type='text/javascript'>form.submit();</script>"));
}
并检查ajax响应中的redirect
:
$.ajax({
type: "POST",
dataType: "json",
url: 'http://www.my_php_file.com',
success: function(data) {
if(typeof data.redirect !== "undefined") {
$("body").append(data.redirect);
}
}
});
只需两个提醒,如果请求失败(没有fail
回调),将不会有重定向,并且我假设您的临时JSON响应没有属性redirect
。
答案 3 :(得分:-1)
您需要检测响应数据是否有效JSON:
$.ajax({
type: "POST",
url: 'http://www.my_php_file.com',
success: checkAJAX
});
function checkAJAX(data)
{
var response = $.parseJSON(data);
if(typeof response === "object")
{
}
else
{
// If the AJAX response is not JSON, append the HTML to the document
$('body').append(data);
}
}