Tại sao hàm cors() bị disable rồi mà ứng dụng react vẫn gọi api được?

chào mọi người
lần đầu tiên mình chưa set hàm cors() thì bên react không call api được ( ảnh 1),

lần thứ 2 mình set hàm cors() để cho react call API thì react lúc này lấy được dữ liệu ( ảnh 2),

.
lần thứ 3 mình chỉnh sửa code server xóa hàm cors() quay về code như lần 1, thì react vẫn call được API và lấy dữ liệu, cho mình hỏi vì sao lần 3 lại có thể lấy dữ liệu ạ? ( mặc dù code server đã quay về giống như lần 1) ?

Mình không rõ về nodejs


Theo mình biết thì khi server trả về header allow CORS lần đầu, browser có cache lại để lần sau không test CORS nữa.
Bạn tự kiểm chứng nhé.

2 Likes

Sao bạn không thử vừa xóa cors vừa thay đổi chút xíu, thêm bớt cái gì đó để xem có đúng là code mới nhất đang work không
Bạn cũng không chứng minh cho mọi người thấy rằng code server đã reload hay chưa
Bạn cũng không show log của server hoặc cái gì đó tương tự để chứng minh lời bạn nói

Cái này cũng giống như buổi tối bạn gặp một sinh vật có cái bóng lạ lạ, bạn nhìn không rõ nhưng bạn lại nói là bạn gặp người ngòai hành tinh, vì bạn thấy giống giống
Có thể bạn không cố tình nói dối, nhưng cũng không có nghĩa là những gì bạn nghĩ là đúng

5 Likes

mình đang ko dùng máy tính nên ko sửa thêm bớt code để chứng minh code đã work cho mọi người thấy được, nhưng Mình dùng nodemon nên mình chắc chắn nó đã reload nhé, với lại mình có tắt server rồi npm start lại nó vẫn không bị chặn (ảnh 3), chứng tỏ là server đã hoạt động ở code mới nhất vậy là do bên client không chặn call API. Mình có thử dùng trình duyệt cốc cốc thì nó bị chặn, mình có thử xoá router /color cho server update lại code rồi call API React thì lúc này console mới cảnh báo bạn không thể gọi API vì chính sách cors, vậy chứng tỏ bên client phải lưu 1 cái gì đó mà nếu đã gọi API lần 1 thành công thì lần 2 nó cứ cho phép gọi mặc dù server đã cập nhật code

vì bạn chưa thấy nodemon nó bị lỗi hoặc trên windows thì terminal/cmd nó bị đơ

điều này không được thể hiện ở bài post của bạn, chưa có gì chứng tỏ được những gì mà bạn nói

những gì bạn nói chưa chứng tỏ được điều mà bạn đang kết luận
bạn không show được những bằng chứng liên quan cho mọi người xem

tab network/log của client? log của server?

2 Likes

thanks Bạn nhé, hôm qua mình có vào mục cache của inspect rồi, giờ mình vào check lại xóa đi lần nữa xem nó lưu ở đâu

mình đoán khả năng là do client đã cache lại kết quả của preflight request nên không bị báo lỗi nữa.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?