संपादित करें: पुष्टि की गई, यह कामकाज अब मैक पर सफारी 5.1 पर काम नहीं करता है। यहां चर्चा की गई: Safari 3rd party cookie iframe trick no longer working?
मुझे नहीं पता कि आपका उपयोग केस क्या है लेकिन हमारे ऐप में हमारे पास 'एक्सेस एक्सेस' बटन के साथ एक स्वागत स्क्रीन है जो अनुमति संवाद खोलती है। जब उपयोगकर्ता 'एक्सेस एक्सेस' पर क्लिक करता है, तो मैं उस नई विंडो को खोलने के लिए उपयोग करता हूं जो सत्र सेट करता है और तुरंत बंद हो जाता है (यह उपरोक्त प्रश्न में प्रस्तावित किया गया था)। उपयोगकर्ता ने एक्सेस की अनुमति देने के बाद आप पेज को फिर से लोड कर सकते हैं? हमारे मामले में यह आवश्यक नहीं है क्योंकि सर्वर के सभी संचार AJAX के साथ है।
मैं दूसरा समाधान का उपयोग कर रहा है और इसके साथ कोई समस्या नहीं है, यहाँ मेरी कोड (jQuery का उपयोग) है:
/**
* Hack for Safari cross-domain cookies. See:
* http://anantgarg.com/2010/02/18/cross-domain-cookies-in-safari/
*/
$(document).ready(function() {
var isSafari = (/Safari/.test(navigator.userAgent));
if (isSafari) {
var iframe = $("<iframe />");
iframe.attr("id", "cookieframe");
iframe.attr("name", "cookieframe");
iframe.hide();
var form = $("<form />");
form.attr("id", "cookieform");
form.attr("target", "cookieframe");
form.attr("enctype", "application/x-www-form-urlencoded");
form.attr("action", "startsession.php");
form.attr("method", "post");
$("body").append(iframe);
$("body").append(form);
form.submit();
}
});
startsession.php में मैं सिर्फ सत्र प्रारंभ हूँ:
<?php session_start();
स्रोत
2012-04-03 11:49:25
मेरे पास एक ही समस्या थी और [मेरे लिए उपयुक्त एक वर्कअराउंड बनाया गया] [http://stackoverflow.com/a/10833632/770984)। उम्मीद है की यह मदद करेगा। –