2016-07-28 21 views
0

Ich gebe Code, den ich bisher ausprobiert habe.Setzen des Cookies für die Anfrage-URL, wenn Ursprungs-URL und Anfrage-URL unterschiedlich sind

Anforderungs-Ursprung - "abc.com", Anfrage-URL - "login.abc.com/login" (Post-Methode)

function setCookie(req, res) 
{ 
    //Some code goes here. 
    //Code to set cookie 
    res.cookie('test',"some value"); //This should set cookie for login.abc.com, which never happened 
} 

auch versucht, für Domain zu setzen

function setCookie(req, res) 
{ 
    //Some code goes here. 
    //Code to set cookie 
    res.cookie('test',"some value",{domain:'.abc.com'},{'path' : '/'});//This should set cookie for .abc.com 
} 

folgenden Code wie erwartet funktioniert

Anfrage-Ursprung - "abc.com", Anfrage-URL - "abc.com/login" (Post-Methode)

function setCookie(req, res) 
{ 
    //Some code goes here. 
    //Code to set cookie 
    res.cookie('test',"some value",{domain:'.abc.com'},{'path' : '/'});//This set the cookie for .abc.com successfully 
} 

Kann mir jemand helfen zu verstehen, warum es nicht einstellt Cookie im ersten Fall, aber es setzt Cookie im zweiten Fall?

HINWEIS Ich versuche dies in meinem lokalen.

Antwort

0

So endlich habe ich die Lösung für mein Problem und in der Lage zu erreichen, was ich will. Diese Antwort schreiben, damit jemand anderes in der Zukunft profitieren kann.

Änderungen der Client-Seite: -

$.ajax({type: "post", 
     data: {}, 
     timeout: 30000, 
     dataType:"json", 
     xhrFields : {withCredentials : true} //Need to add this along with the request. 
    }) 

Jetzt Serverseite Änderungen: -

var cors = require('cors'); 

app.post('/testRoute', 
    cors({credentials:true, 
    origin:'http://example.com'}), //Origin should be the url of the page, from where we are sending request. 
    function(req, res){ 

    res.cookie('test',"some value",{'path' : '/'}) 
}) 

cors-doc Siehe mehr darüber wissen, wie cors in Server-Seite zu verwenden.

HINWEIS: - nicht Access-Control-Allow-Origin Wert als * wenn xhrFields : {withCredentials : true} verwenden Können wir in der Ajax-Anforderung angeben.