从 iframe 到 ajax 的会话
Posted
技术标签:
【中文标题】从 iframe 到 ajax 的会话【英文标题】:Session from iframe to ajax 【发布时间】:2016-06-02 12:21:56 【问题描述】:当我从域中的 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);
See Fiddle
【问题讨论】:
尝试在输出标题之前启动会话。 @Matt 没区别! 【参考方案1】:查看如何进行 CORS。很快,要让浏览器使用 ajax 发送会话,您必须在 xhr 中添加一些字段:
$.ajax(
url : "https://crypter.co.uk/iframe.php?want",
xhrFields :
withCredentials : true // <-- this
,
success : function( data )
$( "#AJAX" ).html( data );
);
而且您必须在服务器端允许此类请求,请参阅 this answer。
【讨论】:
@Maximilian 你是什么意思? 好吧,我在使用 Ajax 访问 Iframe.php 时创建了一个会话,然后成功创建了一个带有域的 Iframe,但没有会话。 @Maximilian 我请你做个小提琴以上是关于从 iframe 到 ajax 的会话的主要内容,如果未能解决你的问题,请参考以下文章
jquery - 如何从我发现的脚本中制作一个 iframe 到 ajax 注入中?