JavaScript đặt cookie không hoạt động
Một ngày nọ, đồng nghiệp của tôi báo cáo rằng anh ấy không thể truy cập một trang web nào đó. Sau mỗi lần thử, anh ấy đã được chuyển hướng trở lại trang đăng nhập. Tôi đã duyệt trang web đó và ngạc nhiên là mọi thứ đều hoạt động tốt với tôi Show Chúng tôi đã kiểm tra trình duyệt của mình và phát hiện ra rằng cả hai chúng tôi đều đang sử dụng cùng một phiên bản Chrome. Vấn đề xảy ra là trong trường hợp của anh ấy, cookie phiên không được chuyển theo yêu cầu tới… Cookies là các chuỗi dữ liệu nhỏ, được lưu trữ trực tiếp trong trình duyệt. Chúng được bao gồm trong giao thức HTTP Theo quy định, máy chủ web đặt cookie với sự trợ giúp của tiêu đề HTTP Set-Cookie phản hồi. Sau đó, trình duyệt thêm chúng vào từng yêu cầu cho cùng một miền, sử dụng tiêu đề Cookie HTTP.
Ngoài ra, bạn có thể sử dụng tài liệu. thuộc tính cookie để truy cập cookie từ trình duyệt 2 tên miền Set-Cookie: name=value; domain=mydomain.com 1 và Set-Cookie: name=value; domain=mydomain.com 2 chỉ có thể chia sẻ cookie nếu tên miền được đặt tên rõ ràng trong tiêu đề Set-Cookie: name=value; domain=mydomain.com 0. Mặt khác, phạm vi của cookie bị giới hạn đối với máy chủ yêu cầu. (Điều này được gọi là "cookie chỉ dành cho máy chủ"Cookie chỉ lưu trữ trên máy chủNếu Set-Cookie: name=value; domain=mydomain.com 1 không được chỉ định, cookie chỉ có thể được đọc bởi tên miền chính xác đã đặt cookie. Điều này có thể được nới lỏng bằng cách đặt thuộc tính Set-Cookie: name=value; domain=mydomain.com 1 khi đặt cookieVí dụ: nếu cookie được đặt bởi Set-Cookie: name=value; domain=mydomain.com 3 và thuộc tính Set-Cookie: name=value; domain=mydomain.com 1 không được chỉ định, thì cookie sẽ được đặt với tên miền Set-Cookie: name=value; domain=mydomain.com 3 và cookie sẽ là cookie chỉ dành cho máy chủ lưu trữMột vi dụ khac. Nếu cookie được đặt bởi Set-Cookie: name=value; domain=mydomain.com 3 và thuộc tính Set-Cookie: name=value; domain=mydomain.com 1 được chỉ định là Set-Cookie: name=value; domain=mydomain.com 8 (vì vậy cookie cũng sẽ được gửi tới Set-Cookie: name=value; domain=mydomain.com 9), thì cookie sẽ được đặt với tên miền Set-Cookie: name=value; domain=mydomain.com 8 (hoặc có thể là Set-Cookie: name=value; domain=mydomain.com 11 bởi một số trình duyệt sử dụng dấu chấm từ RFC trước đó
Chẳng hạn, nếu bạn đã gửi tiêu đề sau từ Set-Cookie: name=value; domain=mydomain.com 2, thì cookie sẽ không được gửi cho các yêu cầu tới Set-Cookie: name=value; domain=mydomain.com 1Set-Cookie: name=value; domain=mydomain.com 2Tuy nhiên nếu bạn dùng cách sau thì sẽ dùng được trên cả 2 miền Set-Cookie: name=value; domain=mydomain.com Cookie này sẽ được gửi cho bất kỳ tên miền phụ nào của tên miền của tôi. com, bao gồm các tên miền phụ lồng nhau như Set-Cookie: name=value; domain=mydomain.com 14Trong RFC 2109, miền không có dấu chấm ở đầu có nghĩa là không thể sử dụng miền đó trên miền phụ và chỉ có dấu chấm ở đầu ( Set-Cookie: name=value; domain=mydomain.com 15) mới cho phép miền đó được sử dụng trên nhiều miền phụ (chứ không phải miền cấp cao nhất . Tuy nhiên, tất cả các trình duyệt hiện đại đều tôn trọng thông số kỹ thuật mới hơn RFC 6265 và sẽ bỏ qua mọi dấu chấm ở đầu, nghĩa là bạn có thể sử dụng cookie trên tên miền phụ cũng như tên miền cấp cao nhất. Tóm lại, nếu bạn đặt cookie như ví dụ thứ hai ở trên từ Set-Cookie: name=value; domain=mydomain.com 1, thì Set-Cookie: name=value; domain=mydomain.com 2 sẽ có thể truy cập cookie đó và ngược lại. Điều này cũng có thể được sử dụng để cho phép Set-Cookie: name=value; domain=mydomain.com 18 và Set-Cookie: name=value; domain=mydomain.com 19 chia sẻ cookieXem thêm
Các trang web thường có www. tên miền phụ trỏ đến cùng một nội dung với tên miền chính. Với cookie phiên, khách truy cập của chúng tôi đã truy cập trang web của chúng tôi bằng www. hoặc họ đã truy cập nó mà không có và thực tế là một cookie được tạo cho www. ví dụ. com không thể truy cập từ ví dụ. com sẽ không thành vấn đề. Với cookie của bên thứ nhất, khách truy cập có thể dễ dàng truy cập trang web của chúng tôi lần đầu tiên dưới dạng www. ví dụ. com và lần thứ hai làm ví dụ. com và vì vậy chúng tôi muốn tạo một cookie có thể truy cập được từ cả hai Tạo Cookie cấp miền trong JavascriptĐể làm cho cookie có thể truy cập được từ toàn bộ miền bao gồm bất kỳ miền phụ nào, chúng tôi chỉ cần thêm tham số miền khi đặt cookie như được minh họa trong ví dụ JavaScript này. Tất nhiên, bạn nên thay thế tên miền của riêng bạn chẳng hạn. com (như ví dụ. com là một tên miền được dành riêng để sử dụng trong các ví dụ mà nó đại diện cho bất kỳ tên miền nào bạn đang thực sự sử dụng. ) Set-Cookie: name=value; domain=mydomain.com 1Nó liên quan đến việc đặt thuộc tính miền của chuỗi cookie như Set-Cookie: name=value; domain=mydomain.com 9Ví dụ: cookie này hiện có thể truy cập được đối với tất cả các tên miền phụ. com thích đăng nhập. ví dụ. com Cookie cần phải có cả đường dẫn và tên miền được thêm vào để xóa. Thử cái này Set-Cookie: name=value; domain=mydomain.com 0Làm việc với Cookies trong ReactJSKhi làm việc với Javascript, bạn có thể có một số cách đơn giản hơn để làm việc với cookie thông qua npm package universal-cookie Bạn có thể đặt cookie bằng JavaScript không?Tạo Cookie bằng JavaScript
. JavaScript can create, read, and delete cookies with the document. thuộc tính cookie. Với JavaScript, một cookie có thể được tạo như thế này. tài liệu. cookie = "tên người dùng=John Doe"; .
Làm cách nào để đặt đường dẫn cookie trong JavaScript?cookie = cName + "=" + cValue + "; " + hết hạn + "; path=/"; . Chức năng này sẽ tạo một cookie có tên là “tên người dùng”, giá trị “Max Brown” với ngày hết hạn là 30 ngày kể từ thời điểm tạo. // Apply setCookie setCookie('username', username, 30); This code defines a function, setCookie(). This function will create a cookie with the name “username”, value “Max Brown” with an expiration date of 30 days from the time it was created.
Làm cách nào để đặt thời gian hết hạn cookie trong JavaScript?// 1 Ngày = 24 Giờ = 24*60*60 = 86400. . Bằng cách sử dụng tuổi tối đa. Tạo cookie. tài liệu. cookie = "cookieName=cookieValue; max-age=86400; path=/;"; . tài liệu. . Bằng cách sử dụng hết hạn. Cú pháp tạo cookie một ngày. var hết hạn = (Ngày mới(Ngày. bây giờ()+ 86400*1000)). toUTCString(); Làm cách nào để tìm nạp cookie trong JavaScript?Chỉ cần gọi tài liệu. cookie để lấy giá trị hiện tại của tất cả các cookie. Sau đó, bạn có thể lưu trữ giá trị này trong một biến để thao tác thêm |