J'ai un iframe sur ma page. Comme Safari bloque les cookies tiers, j'essaie d'utiliser l'API d'accès au stockage comme suggéré ici sous `` Guide du développeur '': https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more / . J'ai copié le code suivant de la documentation :
<script type="text/javascript">
window.addEventListener('load', () => {
document.getElementById('test-button').addEventListener('click', () => {
document.hasStorageAccess().then(hasAccess => {
console.log('hasAccess: ' + hasAccess);
if (!hasAccess) {
return document.requestStorageAccess();
}
}).then(_ => {
console.log('Now we have first-party storage access!');
document.cookie = "foo=bar";
console.log(`document.cookie: ${document.cookie}`);
}).catch(_ => {
console.log('error');
});
});
});
</script>
<button id="test-button">Test</button>
Sortie de la console du navigateur:
[Log] hasAccess: true
[Log] Now we have first-party storage access!
[Log] document.cookie:
Comme vous pouvez le voir, la subvention semble réussir, mais ne peut toujours pas définir le cookie. Quelqu'un at-il une idée de ce qui ne va pas?
Safari version 13.0.1
EDIT: Sortie de la console sur Safari 13.1:
[Log] hasAccess: false
[Log] error
Remarque: La page englobante est une simple iframe
balise src
pointant vers cette page.
console.log('Now we have first-party storage access!');
venir dans le then
de requestStorageAccess()
?