首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中使用ajax调用(使用jQuery)时重定向浏览器

如何在php中使用ajax调用(使用jQuery)时重定向浏览器
EN

Stack Overflow用户
提问于 2011-02-27 22:54:27
回答 4查看 2.2K关注 0票数 1

在ajax调用中,我面临重定向站点的问题。

以下是我想做的事:

  1. 对服务器进行ajax调用。
  2. 它会转到某个进程,如果发生错误,我应该发送到错误页面,否则继续。

现在的问题是,在服务器端,如果我使用:

代码语言:javascript
复制
header('Location: error.php');

它不会重定向页面,实际上它只是将页面(整个html)的数据重定向到javascript成功函数。

问题是,我已经在javascript端(调用ajax)和服务器端创建了一个通用库。

我需要通过服务器端重定向页面。我试着添加js代码

代码语言:javascript
复制
 window.location='error.php';

但没有取得任何成功

EN

回答 4

Stack Overflow用户

发布于 2011-02-27 22:59:06

为什么不返回Ajax查询可以理解的错误呢?

代码语言:javascript
复制
if ($error)
 {  header("HTTP/1.1 500 Internal Server Error");
    echo "A database error has occurred. etc.etc.";
    die();
 }

这将触发Ajax请求的错误回调(如果在jQuery中)。回显的文本将在响应体中。

你也可以根据情况寻找更合适的状态码

票数 3
EN

Stack Overflow用户

发布于 2011-02-27 23:00:50

我认为在ajax库中应该有一个错误处理程序。在服务器中,您可以返回正确的html或头中的错误代码,再加上要在正文中重定向的URL。在ajax中,标头中的错误代码将触发错误处理程序。在错误处理程序中,可以使用window.location = 'page_returned_by_server‘重定向。

票数 2
EN

Stack Overflow用户

发布于 2011-02-27 23:28:37

如果发生错误,只需回显错误页的url即可。例如,使用JSON:

服务器端:

代码语言:javascript
复制
echo '{error: "error.php"}';

客户端:

代码语言:javascript
复制
var xhr = $.ajax({ url: "example.php" })
    .success(function() {
        var obj = JSON.parse(xhr.responseText)
        if obj.error {
            window.location = obj.error;
        }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5136645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档