繁体   English   中英

从iframe到ajax的会话

[英]Session from iframe to ajax

为什么我从域中的iframe创建会话然后尝试从另一个iframe访问会话它工作正常但是当我尝试通过ajax访问会话时它不起作用?


例:

网站(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);

见小提琴

查看如何做CORS。 不久,要使浏览器使用ajax发送会话,您必须向xhr添加一些字段:

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

而且你必须允许这样的请求服务器端,请参阅此答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM