شرح صفوف ومحتوى الفقرة
يقسّم المتصفح الطلبات العابرة للمصادر إلى فئتين لحماية الخوادم من الطلبات غير المتوقعة التي قد تعدّل البيانات:
- 1. الطلبات البسيطة (): هي الطلبات التقليدية التي تستخدم طريقة أو أو القياسية للنماذج دون رؤوس مخصصة؛ حيث يرسلها المتصفح مباشرة مرفقة برأس ويفحص الاستجابة.
- 2. الطلبات المسبوقة باستعلام التفاوض (): عندما يحاول كود إرسال طلب غير بسيط—مثل استخدام طرق التعديل والحذف ( أو أو )، أو إرسال جسم بصيغة ، أو إرفاق رأس مصادقة مثل —يتوقف المتصفح لحظة ويرسل تلقائياً طلب استئذان أولي بطريقة يسأل فيه الخادم: «هل تسمح لهذا المصدر باستخدام هذه الطريقة وهذه الرؤوس؟». ولا يرسل المتصفح الطلب الفعلي إلا بعد موافقة الخادم!
تأمل تشريح طلب التفاوض المسبق في المثال الآتي، ثم جرّب الحالات الأربع عملياً في المحاكي التفاعلي أدناه:
Shell
# Browser Automatic Preflight Request Before Sending DELETE or JSON
OPTIONS /v1/orders/42 HTTP/1.1
Host: api.example.com
Origin: https://app.example.com
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: authorization, content-type
# Server Preflight Approval Response (204 No Content)
HTTP/1.1 204 No Content
Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Authorization, Content-Type