Chciałbym wiedzieć, czy kiedy zrobię $ .post (...) z jQuery, jest jakikolwiek plik cookie wysłany do serwera w żądaniu pocztowym?Czy jQuery wysyła pliki cookie w poście?
Dzięki!
Chciałbym wiedzieć, czy kiedy zrobię $ .post (...) z jQuery, jest jakikolwiek plik cookie wysłany do serwera w żądaniu pocztowym?Czy jQuery wysyła pliki cookie w poście?
Dzięki!
Pliki cookie są wysyłane z żądaniami Ajax.
Gdy dla pliku cookie ustawiono flagę HTTPOnly, ten plik cookie jest ukryty przed skryptami po stronie klienta, ale plik cookie jest nadal wysyłany z żądaniami Ajax.
HTTPOnly nie wpływa na żądania AJAX/HTTP, a jedynie ukrywa plik cookie od skryptu po stronie klienta. Nadal będzie wysyłany na serwer. –
@Christian - poprawiony, dzięki. –
Używanie tych samych plików cookie na kliencie i serwerze nie jest możliwe po włączeniu funkcji httpOnlyCookies. Istnieje bardzo dobry powód ten przełącznik na zbyt:
+1 Dzięki za ten link! – MSpreij
To jest nieprawidłowe. Spójrz na to pytanie, aby uzyskać naprawdę dobre wyjaśnienie HTTPOnly + AJAX: http://stackoverflow.com/questions/27972/are-httponly-cookies-a-viable-option-for-an-ajax-website –
Korzystanie Firefox + Firebug można zobaczyć dokładnie to, co wysyła jQuery i jak. Przydatny do debugowania!
Przykro mi być mokrym kocem, ale zamierzam zaprzeczyć pozytywnym emocjom tutaj i powiedzieć NIE.
Aktualnie buduję aplikację za pomocą $ .post, aby połączyć się z moim zapleczem API, który jest obsługiwany przez Express i node.js. Używam oprogramowania pośredniczącego parsera plików Express, aby odczytać pliki cookie wysłane w każdym żądaniu. Jeśli uderzę w mój punkt końcowy bezpośrednio za pomocą przeglądarki, serwer zaplecza może zobaczyć pliki cookie widoczne w mojej domenie. Jednak gdy używam $ .post w mojej aplikacji obiekt cookie jest po prostu pusty.
Jest możliwe, że jestem brakuje czegoś, ale ja testuje to przez ostatnie kilka godzin i zawarcie Doszedłem do tego, że ciasteczka są po prostu nie wysłał za pomocą jQuery $ .post żądanie:/
Spróbuj z typowy post html. Twój debugger plików cookie brzmi paskudnie. To czy ciasteczka są wysyłane, czy nie, jest decyzją przeglądarki, a nie skryptem/jquery. –
Dzieje się tak, ponieważ wykonujesz żądanie między domenami, a pliki cookie nie są wysyłane z żądaniami XHR między domenami. http://stackoverflow.com/questions/7911710/jquery-ajax-call-not-sending-cookie – Josh
Jedną z rzeczy do rozważenia jest ścieżka do plików cookie. Jeśli skrypt ładowany ajaxowo ustawia plik cookie, wówczas jego ścieżka może być inna niż strona nadrzędna, umieszczając go w innym zakresie dla niektórych aplikacji serwerowych lub JQuery. Dzisiaj spędziłem trochę czasu, obracając kółka, po czym zauważyłem, że ciasteczka, które miałem problemy z czytaniem, miały inną ścieżkę.
Proste fix dla mnie było, aby ustawić ścieżkę wszystkich plików cookie do/z jquery w moim żądania ajax tak:
$.cookie("isolates_grid_tgl", "true", { path: "/" });
Jeśli używasz Firebug, można spojrzeć w „Console "obszar, w którym można zobaczyć wszystkie żądania. Zajrzyj do nagłówków plików cookie. –