Cùng một chính sách về nguồn gốc và các yêu cầu tìm nạp
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Trong lớp học lập trình này, hãy xem cách hoạt động của cùng nguồn gốc khi tìm nạp tài nguyên.
Thiết lập: Tìm nạp trang từ cùng một nguồn gốc
Bản minh hoạ được tổ chức tại https://same-origin-policy-fetch.glitch.me
.
Trang web đơn giản này sử dụng fetch
để tải tài nguyên từ https://same-origin-policy-fetch.glitch.me/fetch.html
. Vì index.html
và fetch.html
có cùng nguồn gốc, bạn sẽ thấy 200
hiển thị trên bản xem trước trực tiếp.
1. Tìm nạp trang từ nguồn gốc khác
Hãy thử thay đổi URL tìm nạp thành https://www.google.com
.
Bạn thấy gì trong bản xem trước trực tiếp?
Trình duyệt lẽ ra đã chặn yêu cầu tìm nạp vì bạn đã yêu cầu một tài nguyên
từ một nguồn khác. Điều này có nghĩa là kẻ tấn công không thể đọc trên nhiều nguồn gốc
ngay cả khi chúng đã nắm quyền kiểm soát trình duyệt của người dùng.
2. Tìm nạp tài nguyên trên nhiều nguồn gốc
Hãy thử thay đổi URL tìm nạp thành https://api.thecatapi.com/v1/images/search
.
Bạn thấy gì trong bản xem trước trực tiếp?
URL tìm nạp có nguồn gốc khác, nhưng bạn sẽ thấy mã trạng thái 200. Tại sao?
Các ứng dụng web hiện đại thường yêu cầu tải các tài nguyên trên nhiều nguồn gốc
tập lệnh của bên thứ ba hoặc truy vấn một điểm cuối API. Để phù hợp với những trường hợp sử dụng này,
có một cơ chế tên là CORS (Chia sẻ tài nguyên đa nguồn gốc) để thông báo cho
trình duyệt tải một tài nguyên trên nhiều nguồn gốc. Xem bài viết Chia sẻ an toàn tài nguyên trên nhiều nguồn gốc để biết thêm thông tin trên CORS.
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2018-11-05 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Thiếu thông tin tôi cần"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Quá phức tạp/quá nhiều bước"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Đã lỗi thời"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Vấn đề về bản dịch"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Vấn đề về mẫu/mã"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Khác"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Dễ hiểu"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Giúp tôi giải quyết được vấn đề"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Khác"
}]
{"lastModified": "C\u1eadp nh\u1eadt l\u1ea7n g\u1ea7n \u0111\u00e2y nh\u1ea5t: 2018-11-05 UTC."}
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2018-11-05 UTC."],[],[]]