I have an application1(C#) that is hosted on port:80 and application 2(nodejs) that is hosted on port:3030. Both are on localhost.
The request workflow is as following:
- browsers sends request to application 1
- application 1 sends back number of cookies
- later on browser sends the request to application 2
- ^ problem is on the last step, the cookies doesnt get included in the request.
Things I have tried/understood:
- I understand that this is a same-origin policy restriction and because of different port # the browser treats them as different domains.
In Application 1 (its using System.Web.HttpCookie) i have tried to set the domain to be port specific ("127.0.0.1:3030") but seems like the browser doesnt accept it or ignore it.
//c# code var testCookie1 = new HttpCookie("Test", "testValue"); testCookie1.Domain = "127.0.0.1:3030"; testCookie1.Path = "/"; testCookie1.Expires = DateTime.Now.AddDays(1); Response.SetCookie(testCookie1); var testCookie2 = new HttpCookie("Test2", "testValue2"); testCookie2.Domain = "127.0.0.1"; testCookie2.Path = "/"; testCookie2.Expires = DateTime.Now.AddDays(1); Response.SetCookie(testCookie2);
The server sends back a cookie with the port number attached to it but the browser seems like it ignores it.
and here is my ajax calls:
var request = $.ajax({
url: 'http://127.0.0.1:3030/SomeTask',
type: 'POST',
crossDomain: true,
});