मेरे पास एक क्रॉस-डोमेन AJAX GET है जो सफलतापूर्वक प्री -28 हो जाता है, लेकिन कुकीज़ GET अनुरोध से संलग्न नहीं होती है। जब उपयोगकर्ता लॉग इन बटन पर क्लिक करता है, तो उपयोगकर्ता को लॉग इन करने के लिए POST बनाया जाता है, जो सही ढंग से डोमेन को पार करता है। जावास्क्रिप्ट है:सीओआरएस अनुरोध - कुकीज़ क्यों नहीं भेजी जाती हैं?
function signInSuccess() {
$.ajax(current_user_url, {
type: "GET",
contentType: "application/json; charset=utf-8",
success: function(data, status, xhr) {
displayWelcomeMessage();
},
beforeSend: function(xhr) {
xhr.withCredentials = true;
}
});
}
:
Set-Cookie:user_token=snippysnipsnip; path=/; expires=Wed, 14-Jan-2032 16:16:49 GMT
साइन-इन सफल होती है एक जावास्क्रिप्ट GET अनुरोध वर्तमान उपयोगकर्ता के जानकारी प्राप्त करने के लिए किया जाता है:
$.ajax(signin_url, {
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(credentials),
success: function(data, status, xhr) {
signInSuccess();
},
error: function(xhr, status, error) {
signInFailure();
},
beforeSend: function(xhr) {
xhr.withCredentials = true
}
});
प्रतिक्रिया हेडर एक कुकी शामिल
सीओआरएस से संबंधित हेडर क्रोम के विकल्प अनुरोध से लौटे हैं:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:X-Requested-With, X-Prototype-Version, Content-Type, Origin, Allow
Access-Control-Allow-Methods:POST, GET, OPTIONS
Access-Control-Allow-Origin:http://192.168.0.5
Access-Control-Max-Age:1728000
हालांकि, जीईटी अनुरोध पर कोई कुकीज़ नहीं भेजी जाती है।
इस काम करने के लिए हो रही है पर 4 घंटे बिताए हैं। इच्छा है कि मैंने पहले इस पोस्ट को देखा था। धन्यवाद! – ChrisRich
पुट/विकल्प एक ही तरीके से काम नहीं कर रहे हैं। GET/POST के लिए कुकीज़ क्यों भेजी जाएंगी लेकिन पुट प्रीफलाइट विकल्प अनुरोध नहीं? –
कुकीज़ स्थानीयहोस्ट पर काम नहीं कर रहे हैं (सेट नहीं किया जा रहा है)। यदि आपको स्थानीय रूप से कुकीज़ का उपयोग करने की आवश्यकता है तो इसके बजाय आईपी-आधारित डोमेन का उपयोग करें (उदा। '127.0.0.1')। – Dziamid