2013-02-26 28 views
8

मैं ग्राहक पक्ष पर कुकीज़ सेट करने के लिए बाकी प्रतिक्रिया का उपयोग कर रहा हूं। लेकिन जब मैं क्रोम में 'संसाधन' खोलता हूं तो मैं कुकी को सेट नहीं देख पा रहा हूं। लेकिन दिलचस्प बात यह है कि, जब मैं क्रोम सेटिंग्स पर जाता हूं और सभी कुकीज़ जांचता हूं, तो मुझे लगता है कि कुकीज़ मैं सेटिंग कर रहा हूं। दोबारा, w3schools (या सभी संभावनाओं को संभालने के लिए बेहतर संस्करण) से प्राप्त कुकी() जावास्क्रिप्ट फ़ंक्शन मुझे कुछ भी नहीं लाता है। मैंने फ़ायरफ़ॉक्स की कोशिश की, वही बात होती है। जब मैं सभी कुकीज़ देखता हूं, तो मैं अपनी कुकीज़ देखता हूं, लेकिन जेएस फ़ंक्शन मिलता है कुकी() मुझे कुछ भी वापस नहीं करता है। मुझे लगता है कि कुकीज़ ठीक से सेट नहीं हो रही हैं।प्रतिक्रिया में जेएक्स-आरएस कुकीज़ ब्राउज़र में नहीं दिख रही

यहाँ मेरी JAX-आरएस प्रतिक्रिया है:

 

    Cookie c1 = new Cookie(Constants.SESSION_TOKEN, response 
       .getSessionToken().getValue()); 

     Cookie c2 = new Cookie(Constants.USER_IDENTIFIER, 
       response.getUserIdentifier()); 

     NewCookie cookie1 = new NewCookie(c1); 
     NewCookie cookie2 = new NewCookie(c2); 

     return Response.ok(jsonResponse, MediaType.APPLICATION_JSON) 
       .cookie(cookie1,cookie2).build(); 

और ये मेरे जे एस getCookie() फ़ंक्शन

 
    function getCookies() { 
     var c = document.cookie, v = 0, cookies = {}; 
     if (document.cookie.match(/^\s*\$Version=(?:"1"|1);\s*(.*)/)) { 
      c = RegExp.$1; 
      v = 1; 
     } 
     if (v === 0) { 
      c 
        .split(/[,;]/) 
        .map(
          function(cookie) { 
           var parts = cookie.split(/=/, 2), name = decodeURIComponent(parts[0] 
             .trimLeft()), value = parts.length > 1 ? decodeURIComponent(parts[1] 
             .trimRight()) 
             : null; 
           cookies[name] = value; 
          }); 
     } else { 
      c 
        .match(
          /(?:^|\s+)([!#$%&'*+\-.0-9A-Z^`a-z|~]+)=([!#$%&'*+\-.0-9A-Z^`a-z|~]*|"(?:[\x20-\x7E\x80\xFF]|\\[\x00-\x7F])*")(?=\s*[,;]|$)/g) 
        .map(
          function($0, $1) { 
           var name = $0, value = $1.charAt(0) === '"' ? $1 
             .substr(1, -1).replace(/\\(.)/g, "$1") 
             : $1; 
           cookies[name] = value; 
          }); 
     } 
     return cookies; 
    } 
    function getCookie(name) { 
     return getCookies()[name]; 
    } 

enter image description here enter image description here

+0

बचाव के लिए कोई भी ?? –

उत्तर

2

कि अजीब बात है है। मैं आपकी समस्या को पुन: पेश करने की कोशिश की है, लेकिन सब कुछ ठीक काम किया:

import javax.ws.rs.core.Cookie; 
import javax.ws.rs.core.NewCookie; 
import javax.ws.rs.core.Response; 

@GET 
@Path(value = "/test") 
public Response test() { 
    NewCookie c = new NewCookie("name1", "value1"); 
    Cookie cookie = new Cookie("name2", "value2"); 
    NewCookie c2 = new NewCookie(cookie); 
    return Response.ok("response1").cookie(c, c2).build(); 
} 

curl -i $URL मुझे दिया:

HTTP/1.1 200 OK 
Server: Apache-Coyote/1.1 
Server: Apache-Coyote/1.1 
Set-Cookie: name1=value1; Version=1 
Set-Cookie: name2=value2; Version=1 
Date: Thu, 19 Sep 2013 13:52:43 GMT 
Content-Type: application/json 
Content-Length: 13 

["a","b","c"] 

कुकीज़ भी Chrome की संसाधन में दिखाया।

2

सुनिश्चित नहीं है कि आपका फ़ंक्शन आपको आपकी कुकी जानकारी क्यों नहीं प्राप्त करता है, लेकिन मुझे पता चल सकता है कि यह आपके ब्राउज़र में क्यों दिखाई नहीं देता है।

इससे मुझे यह याद रखने में मदद मिली कि आपको ब्राउज़र के लिए कंसोल में कुकी प्रदर्शित करने के लिए कुकी पर सेट किया गया विशिष्ट पथ देखने की आवश्यकता है।

उपर्युक्त उदाहरण में, "पथ:" खंड में प्रदर्शित यूआरएल पर जाना सुनिश्चित करें।

0

किसी को इस मुद्दे पर लैंडिंग के लिए।

यह समस्या तब होती है जब डोमेन या पथ मान ठीक से पथ और डोमेन

NewCookie cookie = new NewCookie("cookie-name", "cookie-value,"/", "", "cookie description", 1000000, false); 

उदाहरण के लिए, अपने ब्राउज़र में आप इन मूल्यों को देखना चाहिए सेट करने के लिए नीचे दिए गए स्निपेट सेट नहीं हैं

उपयोग इसके सेट

Set-Cookie:x-auth-cookie=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJtbTMiLCJhdWRpZW5jZSI6IkJST1dTRVIiLCJjcmVhdGVkIjoxNDg1MjU4MDcwMzQ2LCJyb2xlcyI6WyJBRE1JTiIsIlRFQUNIRVIiXSwiZXhwIjoxNDg2MjU4MDcwfQ.TM6oiCsOXh2zNou00H-5tkafAj40AngkbrCA62Vdyi5si_5hZFdmZFfitmK_bgRJexmFC49KlpAaRzGJF8bvMQ;Version=1;Comment="cookie description";Domain=;Path=/;Max-Age=1000000 
संबंधित मुद्दे