javascript - 从 iframe 到 ajax 的 session

标签 javascript php ajax session iframe

当我从域中的 iframe 创建 session ,然后尝试从另一个 iframe 访问该 session 时,它工作正常,但是当我尝试通过 ajax 访问该 session 时,它却不起作用?


示例:

网站(iframe.php):

<?php 
header("Access-Control-Allow-Origin: *");
session_start();
if(isset($_POST['session'])){
    $_SESSION['session'] = $_POST['session'];
    echo "created session";
}else if(isset($_GET['want'])){
    //for ajax request
    die($_SESSION['session']);
}
?>
<form action="iframe.php" method="post">
SESSION VAL:<input name="session" value="<?php echo $_SESSION['session']?>" type="text"/><br>
<input type="submit"/>
</form>

HTML

<iframe src="iframe.php">

</iframe>
<br>SESSION FROM AJAX:
<div id="AJAX"></div>

AJAX

window.setInterval(function(){
    $.get( "iframe.php?want", function( data ) {
        $( "#AJAX" ).html( data );
    });
},1000);

See Fiddle

最佳答案

查找有关如何执行 CORS 的信息。很快,要使浏览器使用 ajax 发送 session ,您必须向您的 xhr 添加一些字段:

$.ajax({
  url : "https://crypter.co.uk/iframe.php?want",
  xhrFields : {
    withCredentials : true // <-- this
  },
  success : function( data ) {
    $( "#AJAX" ).html( data );
  }
});

而且您必须在服务器端允许这样的请求,请参阅 this answer .

关于javascript - 从 iframe 到 ajax 的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35530531/

相关文章:

javascript - 当 'true' 时,“And”似乎返回 'true and false'(当答案 == b 时,答案 != a && b 返回 true)

javascript - 制作一个简单的 slider

php - 仅克隆变量的值

javascript - 识别点击的链接并将 id 传递给函数

c# - 类似 Internet Explorer 收藏夹窗口的弹出窗口

javascript - 在javascript中声明空数组

javascript - JQuery UI 选择菜单更改显示更改文本

javascript - <a href> anchor 在刷新后保留在 URL 和页面中

php - 这是在 PHP mvc 中缓存查询和构建页面的可接受方式吗?

javascript - 有条件地向 jQuery Ajax 调用添加选项