Perl CGI 在身份验证后重定向
Perl CGI redirect after authentication
我知道这是一个基本问题,有人问了好几次,但我无法理解。
我正在使用一个带有一些输入字段和提交按钮的 html 网页,当按下提交按钮时,帖子是通过 XMLHttpRequest 完成的,并调用 CGI 脚本。在 cgi 脚本中,使用服务器文件中的值检查身份验证。
问题是,如果身份验证是错误的,我想将浏览器重定向到 xmltest.shtml,因为我在 CGI 中写了这个:
if($isauthenticated == 0)
{
print "Location: http://xmltest.shtml'n'n";
}
但是当这个cgi被调用作为回报时,get是用xmltest.shtml页面调用的,但浏览器不会被重定向。
这意味着如果我在Firebug控制台中检查,我会看到xmltest.shtml的get请求,但浏览器页面不会重定向到xmltest.shtml,它仍然保留在同一页面。
您不能以这种方式重定向页面。当您使用 XMLHttpRequest 时,您将重定向标头发送到在后台运行的 XMLHttpRequest 客户端。您将成功重定向该客户端,但它不会影响屏幕上的页面。
如果要重定向实际的浏览器页面以响应 XMLHttpRequest 会话,则需要编写一些 JavaScript 来捕获错误条件并通过更新 document.location.href
的值来重定向浏览器。
如果您使用的是像 jQuery 这样的 AJAX 框架,则 ajax
方法中有一个错误回调,如果您的失败请求返回 HTTP 403 或类似内容,该回调将被执行。
相关文章:
- 当需要身份验证时,ui路由器不会重定向
- 全身份验证 - 抓住用户被重定向到谷歌的时刻
- 返回重定向到具有 HTTP 基本身份验证的 URL
- AngularFire,登录身份验证和重定向并不完全有效
- 护照身份验证回调而不是重定向
- Perl CGI 在身份验证后重定向
- 使用preventDefault时,PHP中的重定向身份验证表单
- 如果未经身份验证,请将用户重定向到登录页
- 使用node.js和angularjs将未经身份验证的用户重定向到默认URL
- 如果未通过身份验证,则在所有路由上重定向到登录
- 不重定向到身份验证日志的新访问令牌
- 雅虎身份验证通过OAuth没有任何重定向(客户端).这可能吗?
- 如何在node.js中处理带有身份验证的重定向响应
- 使用Jquery/Javascript在提交和重定向时验证表单的最佳实践
- 有什么方法可以绑定'任何'通过身份验证脚本重定向(链接/刷新等)
- 身份验证后使用Javascript SDK重定向URI
- Javascript -当单击按钮时,如果未经过身份验证,则重定向到Login页面
- NodeJS Passport身份验证-始终重定向到失败url
- 直到JS重定向,Laravel ajax身份验证工作
- 将未经身份验证的用户重定向到ember中登录屏幕的最DRY方式