Ich habe ein Problem auf localhost mit Blick auf und in Chrome
und Firefox
, nicht Edge
Cookies nicht gesetzt werden, wenn Verfällt weniger als 1 Jahr, auf localhost (Chrome und FF)
dieser Code ok funktionieren wird, und wird setzen sie den Cookie:
[HttpPost]
public ActionResult Change(string val)
{
var cookie = new HttpCookie(CookieName) { Value = val, Expires = DateTime.Now.AddYears(1) };
Response.Cookies.Add(cookie);
return Content("");
}
aber wenn ich das nur 300 days
Verfällt ändern, wird das Cookie nicht zurück in den Request Cookies
gesendet werden, (es wird nach wie vor in den Response Cookies
für die Change
Anfrage sichtbar sein)
Bearbeiten: Diese Aktion wird über Jquery Ajax ($.post
) aufgerufen; und es funktioniert vielleicht vor einem halben Jahr
Das ist seltsam, funktioniert gut für mich: [Httppost] public Action ändern (string val) { var cookie = new Http ("MyCookie") {Wert = val, Verfällt = DateTime.Now. AddDays (300)}; Response.Cookies.Add (Cookie); zurück Inhalt (" a"); } öffentliche ActionResult Check() { var cookies = Request.Cookies; return Ansicht(); } – SamGhatak
So können Sie es konsistent reproduzieren, sogar mit einfachen MVC-Anwendung mit nur dieser Methode oben? Oder nur auf etwas Komplexerem als das? – Evk
@Evk Ja, es ist das gleiche Verhalten für mich in 2 Projekten, auf localhost; arbeitet an der Kante obwohl – Omu