"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إعادة توجيه المستخدم إلى صفحة أخرى بعد تسجيل الدخول باستخدام JavaScript Fetch API؟

كيفية إعادة توجيه المستخدم إلى صفحة أخرى بعد تسجيل الدخول باستخدام JavaScript Fetch API؟

تم النشر بتاريخ 2024-11-08
تصفح:522

How to Redirect User to Another Page After Login Using JavaScript Fetch API?

كيفية إعادة توجيه المستخدم إلى صفحة أخرى بعد تسجيل الدخول باستخدام JavaScript Fetch API؟

في الكود المقدم، طريقة جلب JavaScript () يُستخدم لإرسال طلب POST إلى نقطة النهاية الخلفية باستخدام رمز مميز تم الحصول عليه من Google. عند التحقق من صحة الرمز المميز في الواجهة الخلفية، يتم إرجاع RedirectResponse برمز الحالة 303. ومع ذلك، لا تحدث إعادة التوجيه في المتصفح.

الخيار 1: إرجاع RedirectResponse

تتبع وظيفة الجلب () استجابات إعادة التوجيه افتراضيًا. ولذلك، يمكنك استخدام خصائص Response.redirected وResponse.url في استجابة fetch() لإعادة توجيه المستخدم يدويًا.

مثال عملي:

fetch('http://localhost:8000/login', {
  method: 'POST',
  headers: { ... },
  body: { ... },
  redirect: 'follow'
})
.then(res => {
  if (res.redirected) {
    window.location.href = res.url;
  } else {
    // Handle non-redirect responses
  }
})

الخيار 2: إرجاع استجابة JSON مع عنوان URL لإعادة التوجيه

بدلاً من ذلك، يمكن للواجهة الخلفية إرجاع استجابة JSON تحتوي على عنوان URL لإعادة التوجيه. على الواجهة الأمامية، يمكنك التحقق من وجود مفتاح "url" في الاستجابة وإعادة توجيه المستخدم وفقًا لذلك.

مثال عملي:

fetch('http://localhost:8000/login', {
  method: 'POST',
  headers: { ... },
  body: { ... },
})
.then(res => res.json())
.then(data => {
  if (data.url) {
    window.location.href = data.url;
  } else {
    // Handle non-redirect responses
  }
})

الخيار 3: استخدام HTML

إذا لم يكن استخدام fetch() مطلوبًا، فيمكنك استخدام نموذج HTML تقليدي مع زر إرسال. عند إرسال النموذج، سيتعامل المتصفح تلقائيًا مع إعادة التوجيه إذا تم إرجاع RedirectResponse من الخادم.

بيان الافراج أعيد طبع هذه المقالة على: 1729207576 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3