在ajax调用中,我面临重定向站点的问题。
以下是我想做的事:
现在的问题是,在服务器端,如果我使用:
header('Location: error.php');它不会重定向页面,实际上它只是将页面(整个html)的数据重定向到javascript成功函数。
问题是,我已经在javascript端(调用ajax)和服务器端创建了一个通用库。
我需要通过服务器端重定向页面。我试着添加js代码
window.location='error.php';但没有取得任何成功
发布于 2011-02-27 22:59:06
为什么不返回Ajax查询可以理解的错误呢?
if ($error)
{ header("HTTP/1.1 500 Internal Server Error");
echo "A database error has occurred. etc.etc.";
die();
}这将触发Ajax请求的错误回调(如果在jQuery中)。回显的文本将在响应体中。
你也可以根据情况寻找更合适的状态码。
发布于 2011-02-27 23:00:50
我认为在ajax库中应该有一个错误处理程序。在服务器中,您可以返回正确的html或头中的错误代码,再加上要在正文中重定向的URL。在ajax中,标头中的错误代码将触发错误处理程序。在错误处理程序中,可以使用window.location = 'page_returned_by_server‘重定向。
发布于 2011-02-27 23:28:37
如果发生错误,只需回显错误页的url即可。例如,使用JSON:
服务器端:
echo '{error: "error.php"}';客户端:
var xhr = $.ajax({ url: "example.php" })
.success(function() {
var obj = JSON.parse(xhr.responseText)
if obj.error {
window.location = obj.error;
}
})https://stackoverflow.com/questions/5136645
复制相似问题