-7

我一直在寻找是否将用户登录重定向到客户端或服务器端的网站会更好。根据我的研究,我发现最好依靠服务器端。

我有一个 JS 脚本,它将使用 Jquery 将数据发布到 php 脚本以检查用户登录详细信息,如果他们发现它会告诉 JS 重定向。这工作正常,但现在我想使用 PHP 脚本重定向,但是当我使用 $.post() 方法时脚本不会重定向。

所以问题是,我如何以这种方式重定向使用?我正在尝试构建这个系统,因此它独立于在浏览器中打开 JS 的用户,因此非常欢迎任何帮助和提示。

谢谢。

4

3 回答 3

4

因为您使用的是 AJAX,所以只有 JavaScript 可以重定向浏览器。如果服务器尝试这样做,它只会重定向 AJAX 请求。

话虽如此,您关于“尝试构建此系统以使其独立于打开 JS 的用户”的声明与您使用$.post().

于 2013-10-15T09:09:55.617 回答
0

您可以从此处获取“位置”标头(重定向 URL):

jQuery - 获取 AJAX 响应标头

success: function(res, status, xhr) { 
  alert(xhr.getResponseHeader("Location"));
}
于 2013-10-15T09:11:26.567 回答
0

使用标准表单将凭据发布到 auth 方法。使用 JavaScript 作为主要的身份验证方法就像根本没有身份验证一样。

如果你已经充分地解决了这个问题并且只是在寻找一个非 js 的后备,那就让它全部非 js。PHP 重定向非常简单,但是您必须输出一个标头,这不能异步完成,因此无论如何您都必须发布数据。

示例 PHP 重定向

header ('HTTP/1.1 301 Moved Permanently');
header ('Location: '.$location);
于 2013-10-15T09:14:46.287 回答