gpt4 book ai didi

javascript - IE 不接受来自 iframe 的 GET

转载 作者:行者123 更新时间:2023-11-28 07:32:16 27 4
gpt4 key购买 nike

答案:

事实证明,IE 不允许在 iFrame 中加载的页面放置 cookie,这使我无法存储 SESSION cookie 来识别用户。防止这种情况的唯一方法是实现 P3P 策略,如用户 Piskvor 所解释的:Cookie blocked/not saved in IFRAME in Internet Explorer

<小时/>

问题:

我遇到了问题,但不知道为什么会发生。

我在domain1.net上有一个页面,其中包含一些JavaScript,该页面从该页面中抓取一个值,然后使用不同域的src(例如http://www.domain2)向该页面添加一个iframe。 net/login.php?id=123。 login.php 从 url 中获取 id,启动 PHP session 并通过设置 $_SESSION['id'] 来让用户登录(请不要评论它有多不安全,它是比这更复杂一点)。如果 url 中没有设置 id,它将返回一个页面,告诉用户登录。

这在 Chrome 和 Firefox 上一切正常,但 IE 只显示“请登录”页面。如果我然后在不同的选项卡中打开 login.php?id=123 页面,它将登录,如果我随后刷新 domain1.net 上的页面,它将显示用户已登录iframe。

有人可以解释一下吗?看来 IE 忽略了 iframe url 中的 GET 值。

作为引用,这是我在domain1.net上的代码:

<script type="text/javascript">
$(document).ready(function() {
$.get('http://www.domain1.net/base/header', function (response, status, xhr) {
var iframeid = response.match(/Profile\/Detail\/(.*?)"/);
if (iframeid) {
theid = iframeid[1];
document.getElementById("addiframe").innerHTML = "<iframe src=\"http://www.domain2.net/login.php?n=" + theid + "\" width=\"100%\" height=\"3000\" frameborder=\"0\" id=\"braintrainer\"></iframe>";
} else {

document.getElementById("addiframe").innerHTML = "<iframe src=\"http://www.domain2.net/login.php?logout\" width=\"100%\" height=\"3000\" frameborder=\"0\" id=\"braintrainer\"></iframe>";
}
});
});
</script>
<div id="addiframe"></div>

最佳答案

事实证明,IE 不允许在 iFrame 中加载的页面放置 cookie,这使我无法存储 SESSION cookie 来识别用户。

防止这种情况的唯一方法是实现 P3P 策略,如用户 Piskvor 所解释的:Cookie blocked/not saved in IFRAME in Internet Explorer

关于javascript - IE 不接受来自 iframe 的 GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29006745/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com