chỉnh sửa 2018-09-13 : đã thêm một số quy định về yêu cầu trước chuyến bay này và cách tránh yêu cầu này vào cuối phản hồi này.
OPTIONS
yêu cầu là những gì chúng ta gọi pre-flight
yêu cầu trong Cross-origin resource sharing (CORS)
.
Chúng cần thiết khi bạn thực hiện các yêu cầu qua các nguồn gốc khác nhau trong các tình huống cụ thể.
Yêu cầu trước chuyến bay này được một số trình duyệt thực hiện như một biện pháp an toàn để đảm bảo rằng yêu cầu được thực hiện được máy chủ tin cậy. Có nghĩa là máy chủ hiểu rằng phương thức, nguồn gốc và tiêu đề được gửi theo yêu cầu là an toàn để hành động.
Máy chủ của bạn không nên bỏ qua nhưng xử lý các yêu cầu này bất cứ khi nào bạn cố gắng thực hiện các yêu cầu xuất xứ chéo.
Một nguồn tài nguyên tốt có thể được tìm thấy ở đây http://enable-cors.org/
Một cách để xử lý những điều này để có được sự thoải mái là đảm bảo rằng đối với bất kỳ đường dẫn nào có OPTIONS
phương thức, máy chủ sẽ gửi phản hồi với tiêu đề này
Access-Control-Allow-Origin: *
Điều này sẽ cho trình duyệt biết rằng máy chủ sẵn sàng trả lời các yêu cầu từ bất kỳ nguồn gốc nào.
Để biết thêm thông tin về cách thêm hỗ trợ CORS vào máy chủ của bạn, hãy xem sơ đồ sau
http://www.html5rocks.com/static/images/cors_server_flowchart.png
chỉnh sửa 2018-09-13
OPTIONS
Yêu cầu CORS chỉ được kích hoạt trong các trường hợp somes, như được giải thích trong tài liệu MDN :
Một số yêu cầu không kích hoạt đèn pha CORS. Những cái đó được gọi là những yêu cầu đơn giản của người dùng trong bài viết này, mặc dù thông số Fetch (định nghĩa CORS) không sử dụng thuật ngữ đó. Một yêu cầu không kích hoạt tiền tố CORS, một cái gọi là yêu cầu đơn giản, đó là một yêu cầu đơn giản đáp ứng tất cả các điều kiện sau:
Các phương thức được phép duy nhất là:
Ngoài các tiêu đề được đặt tự động bởi tác nhân người dùng (ví dụ: Kết nối, Tác nhân người dùng hoặc bất kỳ tiêu đề nào khác có tên được xác định trong thông số Fetch là một tiêu đề bị cấm tên), các tiêu đề duy nhất được phép được đặt thủ công là những cái mà đặc tả Fetch định nghĩa là một tiêu đề yêu cầu được bảo vệ an toàn bởi CORS, đó là:
- Chấp nhận
- Ngôn ngữ chấp nhận
- Nội dung ngôn ngữ
- Loại nội dung (nhưng lưu ý các yêu cầu bổ sung bên dưới)
- Sở DPR
- Đường xuống
- Lưu dữ liệu
- Chiều rộng khung nhìn
- Chiều rộng
Các giá trị được phép duy nhất cho tiêu đề Kiểu nội dung là:
- application / x-www-form-urlencoding
- nhiều dữ liệu / biểu mẫu
- văn bản / đồng bằng
Không có trình lắng nghe sự kiện nào được đăng ký trên bất kỳ đối tượng XMLHttpRequestUpload nào được sử dụng trong yêu cầu; chúng được truy cập bằng thuộc tính XMLHttpRequest.upload.
Không có đối tượng ReadableStream được sử dụng trong yêu cầu.