मेरे पेज पर एक iframe है। जैसा कि सफारी 3 पार्टी कुकीज़ को ब्लॉक करता है, मैं 'डेवलपर गाइडेंस' के तहत यहां बताए अनुसार स्टोरेज एक्सेस एपीआई का उपयोग करने की कोशिश कर रहा हूं: https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more / । मैंने प्रलेखन से निम्नलिखित कोड की प्रतिलिपि बनाई है :
<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>
ब्राउज़र कंसोल आउटपुट:
[Log] hasAccess: true
[Log] Now we have first-party storage access!
[Log] document.cookie:
जैसा कि आप देख सकते हैं, अनुदान सफल प्रतीत होता है, लेकिन फिर भी कुकी को सेट नहीं किया जा सकता है। क्या किसी को अंदाजा है कि क्या गलत है?
सफारी संस्करण 13.0.1
संपादित करें: सफारी 13.1 पर कंसोल आउटपुट:
[Log] hasAccess: false
[Log] error
नोट: संलग्न पृष्ठ इस पृष्ठ की ओर इशारा करते हुए एक सरल iframe
टैग है src
।
console.log('Now we have first-party storage access!');
में आते हैं then
की requestStorageAccess()
?