شرح صفوف ومحتوى الفقرة
من القواعد الجوهرية في Fetch API أن دالة fetch() لا تطلق استثناءً تلقائياً عند رموز الخطأ مثل 400 أو 404 أو 500، بل ترفض الوعد فقط عند انقطاع الشبكة!
- افحص دائماً الشرط
if (!response.ok)في JavaScript (والذي يكون صحيحاً فقط لرموز الحالة بين200و299). - على جانب PHP، اضبط رمز الحالة عبر
http_response_code(404)أو422مع إرجاع كائن JSON يوضح رسالة الخطأ في مفتاحerror. - أحِط استدعاء
fetch()بكتلةtry / catchلمعالجة انقطاع الاتصال وأخطاء الخادم معاً.
الجمع بين http_response_code(404) والمفتاح المنطقي "ok": false داخل JSON يجعل معالجة الأخطاء في الواجهة الأمامية واضحة وموحدة.
PHP
<?php
function sendJsonError(int $status, string $message): string {
http_response_code($status);
return json_encode([
'ok' => false,
'status' => $status,
'error' => $message,
]);
}
echo sendJsonError(404, 'Lesson record not found') . "\n";