2012-10-19 25 views
5

मेरे पास एक प्रोजेक्ट है जो एक आरईएसटी एपीआई का उपयोग कर रहा है। यहां लॉगिन अनुरोध स्वीकार करते समय, वे मुझे कुछ डेटा containg के रूप में प्रतिक्रिया भेज रहे हैं। प्रतिक्रिया हेडर में उसके साथ साथjQuery AJAX रिस्पॉन्स सेट कुकी हैडर

Access-Control-Allow-Origin:* 
Connection:keep-alive 
Content-Length:239 
Content-Type:application/json 
Date:Fri, 19 Oct 2012 06:28:12 GMT 
Server:Apache/2.2.22 (Amazon) 
Set-Cookie:session=username; Path=/ 

यहाँ हम एक Set-Cookie है, लेकिन इस कुकी सेट नहीं है। मुझे इस कुकी को सेट करने की आवश्यकता है, क्योंकि किसी भी अन्य एपीआई एक्सेस के लिए, सर्वर इस कुकी की जांच करेगा।

मैं इस समस्या को कैसे हल कर सकता हूं? JQuery AJAX प्रतिक्रिया हैडर सेट-कुकी विधि के लिए समाधान क्या है?

+0

के लिए एक बेहतर जवाब/वैकल्पिक हल कर रहे थे? –

उत्तर

6

आप XMLHTTPRequest से शीर्षलेख प्राप्त कर सकते हैं। यह मदद कर सकता है। अगर यह काम कर रहा है तो मुझे बताएं।

$.ajax({ 
    type: 'POST', 
    url:'url.do', 
    data: formData, 
    success: function(data, textStatus, XMLHttpRequest){ 
     var cookietoSet=XMLHttpRequest.getResponseHeader('Set-Cookie'); 

     Set_Cookie(cookietoSet.split('=')[0],cookietoSet.split('=')[1],expires, path, domain, secure)//change as per ur needs 
    } 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     alert(XMLHttpRequest.getResponseHeader('some_header')); 
    } 
    }); 




function Set_Cookie(name, value, expires, path, domain, secure) 
{ 
// set time, it's in milliseconds 
var today = new Date(); 
today.setTime(today.getTime()); 

/* 
if the expires variable is set, make the correct 
expires time, the current script below will set 
it for x number of days, to make it for hours, 
delete * 24, for minutes, delete * 60 * 24 
*/ 
if (expires) 
{ 
expires = expires * 1000 * 60 * 60 * 24; 
} 
var expires_date = new Date(today.getTime() + (expires)); 

document.cookie = name + "=" +escape(value) + 
((expires) ? ";expires=" + expires_date.toGMTString() : "") + 
((path) ? ";path=" + path : "") + 
((domain) ? ";domain=" + domain : "") + 
((secure) ? ";secure" : ""); 
} 
+0

इस कोड को अपने स्थानीय सर्वर के लिए कुकी सेट हो जाएगी। लेकिन मेरी समस्या यह है कि मैं इसे की जरूरत है स्थापित करने के लिए है एपीआई सर्वर के लिए। कुकी किसी भी डोमेन नाम प्रदान नहीं करती है। –

+0

मैं अभी भी स्पष्ट नहीं हूं .. यह कोड आपके ब्राउज़र पर आपके वेब सर्वर से कुकी सेट करेगा – thecodejack

2

मुझे लगता है कि यहाँ असली मुद्दा यह है कि अगर आप अपने ब्राउज़र की गोपनीयता/कुकी सेटिंग्स तो कुछ ब्राउज़रों (कम से कम एफएफ & आईई) पागल के लिए निर्धारित किया एक्सएचआर आधारित सेट कुकी शीर्ष लेख की उपेक्षा करने लगते हैं।

यहां कुछ एफएफ सहायता का एक लिंक है जो आपके उपयोगकर्ताओं के लिए उपयोगी हो सकता है। http://support.mozilla.org/en-US/kb/fix-login-issues-on-websites-require-passwords

काश तुम कहाँ इस अनुरोध कर रहे हैं कि इस 8 (