Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定用户是否来自https域?_Javascript_Http_Jsp_Url_Https - Fatal编程技术网

Javascript 如何确定用户是否来自https域?

Javascript 如何确定用户是否来自https域?,javascript,http,jsp,url,https,Javascript,Http,Jsp,Url,Https,我有一个页面,如果用户登录,它会将用户(JavaScript)重定向到“帐户管理”页面(在https域上)。如果没有,页面将向他们显示如何登录的说明 一旦他们更新了他们的首选项,就会有一个“返回内容”链接,将用户带回上一个URL。问题是,由于用户在此点登录,重定向会触发并将其发送回其帐户管理页面 我想我可以通过查看https域中的referer头来确定这一点,但遗憾的是,https不存在它们(据我所知) JSP: 我尝试使用JavaScript动态地向URL追加一个参数,然后在再次触发重定向之前

我有一个页面,如果用户登录,它会将用户(JavaScript)重定向到“帐户管理”页面(在https域上)。如果没有,页面将向他们显示如何登录的说明

一旦他们更新了他们的首选项,就会有一个“返回内容”链接,将用户带回上一个URL。问题是,由于用户在此点登录,重定向会触发并将其发送回其帐户管理页面

我想我可以通过查看https域中的referer头来确定这一点,但遗憾的是,https不存在它们(据我所知)

JSP:

我尝试使用JavaScript动态地向URL追加一个参数,然后在再次触发重定向之前检查该参数

JavaScript

    window.location.pathname += "?test=1";
这会导致重定向循环,但我不知道还有其他方法可以修改URL路径

由于工作中的访问限制,我只能在我的页面模板中工作。我不能修改https服务器上的任何内容,也不能修改htaccess

因此,有了这些限制,我如何判断用户是否从https域访问了我的页面?

以获取参考URL

document.referrer
如果您正在向URL添加不应发送到服务器,而应发送给页面使用的信息,请使用哈希,而不是查询。只有将数据发送到服务器进行处理时,才应使用“?”

window.location.hash += 'test=1'
//Makes the url look like http://example.com/#test=1
将在url哈希中附加“dontdoany”,而无需重新加载页面

编辑:所以我做了一些研究,但似乎没有一种快速的方法(即
document.referer
)。但这些方法无论如何都不是很可靠。我听说,如果在新选项卡或窗口中打开链接,web工具包(可能是较旧的版本,现在已修复)将删除推荐人信息,即使是http到http

<>看起来你完全在自己的站点上工作,所以我会考虑使用cookie或URI中的散列。您可以在重定向回页面时在cookie或哈希中设置一些变量,并在页面加载时将其作为状态标志读取。当然,您可以让cookie持续一段时间,也可以跨域上的所有页面。您可能已经将会话信息存储在cookie中,您甚至可以检查它

如果您是从不在您的域中的页面重定向,我建议为这些站点提供一个特定的链接,在URI中提供一个特定的散列,您可以在数据库中引用该链接以获取引用者


希望这有帮助…

谢谢,但是document.referer也会从https返回null。啊,是的,是的,忘记了这一点…让我看看我能找到什么…同时,你可以在https站点的链接中向哈希添加一个值并读取哈希
window.location.hash += 'test=1'
//Makes the url look like http://example.com/#test=1