我正在创建一个自动登录在线网站的离线网页。 该网站使用ssl( https )并登录使用表单(发布变量)
我遇到的问题如下: 当我首先打开在线登录页面时,该站点只接受我的离线表单。 这是因为网站使用(服务器端)会话,这是在打开第一页时制作的。 (会话的目的是检测超时)
当我第一次打开在线网站然后运行我的离线页面时,一切正常。
因此,在自动发布表单之前,我需要让我的离线网页打开在线网站。
我尝试使用 iframe ,但这在Internet Explorer中不起作用,因为它是https网站。 (它确实可以在Chrome,Firefox中运行,...)
我想知道 Ajax 是否可以在发布表单之前发送https页面请求。但我想不是因为它是https。
是否有人知道发送https页面请求的方法,就像浏览器一样,但没有显示它的输出?之后我可以自动提交表格。
提前致谢!
答案 0 :(得分:1)
Internet Explorer将来自其他域的iframe视为第三方内容,并为其使用单独的一组安全策略。 security zone settings在file:///
“本地计算机”/“离线”网页和“互联网”/“在线”网页之间也有效。 Cookies are usually blocked from third party content(取决于您的设置),这意味着不会保存Cookie中设置的唯一会话密钥。如果没有此密钥,您尝试登录的网站将“忘记”您的会话/登录。
Cross-domain AJAX request are also affected by security zones and cross-domain policies,但settings may differ between IE versions。
如果您控制目标网页,可以使用P3P policies来限制这些限制。 Cookie blocked/not saved in IFRAME in Internet Explorer显示了如何。但是,如果您拥有该网页,最好启用或implement your own "remember me" feature。
在您的情况下,根据您是否是唯一使用离线自动登录网页的人,也许允许在Internet Explorer中使用第三方Cookie会有所帮助。请参阅选项>隐私>允许所有Cookie (或类似)。这将允许其他人(主要是广告公司)通过互联网跟踪您。
如果您的自动登录页面的目的是测试,而不是实际使用浏览器作为人类,那么您可以automate both logging in and testing吗?