Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用safari时在iframe中设置cookie_Javascript_Cookies_Iframe_Safari - Fatal编程技术网

Javascript 使用safari时在iframe中设置cookie

Javascript 使用safari时在iframe中设置cookie,javascript,cookies,iframe,safari,Javascript,Cookies,Iframe,Safari,我知道在Stackoverflow和internet上有很多相关的问题和答案,但是,我无法找到我的案例的解决方案 我们在域A上有一个我们无法控制的应用程序,在域B上有一个应用程序-我们的iframe正在集成到应用程序A中。我们在应用程序B中使用cookie。所有工作正常,cookie在请求之间被保留,Safari除外。我阅读并理解Safari的特殊性,它要求用户在过去明确地与域B进行交互 我们试图通过在站点A上渲染一个不可见的像素来克服这个问题,该像素使用我们的集成JS脚本,该脚本将iframe

我知道在Stackoverflow和internet上有很多相关的问题和答案,但是,我无法找到我的案例的解决方案

我们在域A上有一个我们无法控制的应用程序,在域B上有一个应用程序-我们的iframe正在集成到应用程序A中。我们在应用程序B中使用cookie。所有工作正常,cookie在请求之间被保留,Safari除外。我阅读并理解Safari的特殊性,它要求用户在过去明确地与域B进行交互

我们试图通过在站点A上渲染一个不可见的像素来克服这个问题,该像素使用我们的集成JS脚本,该脚本将iframe注入站点A上的某个div中。我们还试图向域A到域B发出CORS ajax请求(也来自我们的集成脚本),我们确实使用withCrendetials:true,如果有必要的话,请求成功返回“set cookie”头,但cookie不会被传递到从iframe到域B的进一步请求中

但是,如果我显式地打开域B,那么突然之间,cookies就会在我们集成到域A中的iframe中传递

我想到目前为止,我们已经尝试了我们能想到的一切,但是没有运气。一些资源建议使用JS重定向,但我认为这是一种糟糕的用户体验。我希望有更好的解决办法


非常感谢您的指点。请,拯救我的一天,这个问题让我发疯:)

通过做大量研究,我们得出结论,最好摆脱cookies,明确使用授权头。只剩下一个问题:我们通过插入到DOM中的图像,因此无法在那里传递授权头(使用查询参数并不理想,因为它会公开auth令牌)。我们通过对图像URL执行ajax请求并将它们作为blob插入DOM来解决这个问题