2015-09-28 20 views
5

Tôi đang sử dụng Laravel 5 (phiên bản "laravel/framework" là "v5.1.16", Homestead Ubuntu), với trình điều khiển phiên = 'tệp'.Laravel 5 Yêu cầu AJAX không đồng bộ gây ra các sự cố về phiên

Tôi nhận thấy rằng nếu một số yêu cầu AJAX không đồng bộ (jQuery) được kích hoạt ví dụ như. trong trường biểu mẫu tìm kiếm tự động hoàn tất thì biến phiên đã biến mất.

Điều này xảy ra, chỉ với các yêu cầu AJAX không đồng bộ, khi tùy chọn async được đặt thành false, sự cố này không còn tồn tại nữa.

Ngoài ra, khi điều khiển phiên được thiết lập để 'Cookie' và thiết lập async true có một cookie mới được tạo ra trên mỗi yêu cầu AJAX, như vậy với 10 yêu cầu sẽ có 10 tập tin cookie, vv laravel

Bất kỳ lời đề nghị? Tôi đã không tìm thấy bất kỳ nguyên nhân hay giải pháp nào cho điều này, ngoại trừ việc không sử dụng các yêu cầu không đồng bộ.

Các vấn đề liên quan, có vẻ như đã được khắc phục.

https://github.com/laravel/framework/issues/7549

https://github.com/laravel/framework/issues/5416

+0

Tôi gặp vấn đề tương tự. Tôi có kịch bản kiểm tra tin nhắn mới sau mỗi vài giây. Sau một số lần yêu cầu, các thay đổi về id của phiên làm việc và tất cả các biến phiên bị mất. Không có lý do tại sao và tôi không thể tìm thấy bất kỳ câu trả lời tốt. Bạn đã quản lý để giải quyết nó? – Gelu

+0

Thật không may, tôi đã sử dụng cookie thay vì phiên để giữ một số dữ liệu đơn giản. – dth

+1

Đây là vấn đề đã biết - không có giải pháp: https://github.com/laravel/framework/issues/8172 - vấn đề là không ai có thể cung cấp một tình huống có thể sao chép được - dường như ngẫu nhiên, hiếm và không rõ ràng nguyên nhân. – Laurence

Trả lời

1

Vì lợi ích của việc có một câu trả lời cho câu hỏi này và là "Exchange Shift" đã giải thích trong lời nhận xét của mình ...

Đây là một vấn đề được biết đến - không có giải pháp: github.com/laravel/framework/issues/8172 - vấn đề là không ai có thể cung cấp một tình huống có thể lặp lại - có vẻ như là ngẫu nhiên, hiếm và không rõ nguyên nhân.

0

Gần đây tôi đã gặp sự cố này và sự cố có thể là mối liên kết kép của phần mềm trung gian web trên tuyến đường. Bạn nên kiểm tra điều đó. Tôi không thể nhận thấy rằng trang web đã được áp dụng trong RouteServiceProvider. Sau khi xóa 'middleware' => 'web' trên tuyến đường sự cố của tôi, sự cố này đã biến mất hoàn toàn.

Các vấn đề liên quan