في JavaScript، يتم استخدام كل من Axios وFetch API الأصلي لتقديم طلبات HTTP، ولكن لديهم بعض الاختلافات من حيث الميزات وسهولة الاستخدام والوظائف. وإليكم الشرح:
أكسيوس:
يعمل Axios على تبسيط عملية تقديم الطلبات والتعامل مع الاستجابات. يقوم تلقائيًا بتحليل استجابات JSON، مما يسهل التعامل معها.
axios.get('/api/user') .then(response => console.log(response.data)) .catch(error => console.error(error));
أحضر:
باستخدام الجلب، تحتاج إلى التعامل بشكل صريح مع تحليل JSON، مما يضيف خطوة إضافية.
fetch('/api/user') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
أحضر:
باستخدام ميزة الجلب، لا يتم التعامل مع رموز الحالة غير 2xx (مثل 404 أو 500) على أنها أخطاء. يجب عليك التحقق يدويًا من حالة الاستجابة وإلقاء خطأ إذا لزم الأمر.
fetch('/api/user') .then(response => { if (!response.ok) throw new Error('Network response was not ok'); return response.json(); }) .then(data => console.log(data)) .catch(error => console.error(error));
أكسيوس:
توفر Axios أدوات اعتراضية مدمجة، مما يسمح لك بتعديل الطلبات أو التعامل مع الاستجابات على مستوى العالم، والتي يمكن أن تكون مفيدة لإضافة رموز المصادقة المميزة، والتسجيل، وما إلى ذلك.
axios.interceptors.request.use(config => { config.headers['Authorization'] = 'Bearer token'; return config; });
أحضر:
لا يحتوي الجلب على أدوات اعتراضية مضمنة، لذلك تحتاج إلى تغليف استدعاء الجلب يدويًا في وظيفة مخصصة إذا كنت بحاجة إلى هذا السلوك.
أكسيوس:
يقوم Axios تلقائيًا بتقييد البيانات عند تقديم طلبات POST وتعيين نوع المحتوى على application/json. كما يدعم إرسال البيانات بتنسيقات أخرى مثل FormData بكل سهولة.
axios.post('/api/user', { name: 'John' });
أحضر:
في عملية الجلب، تحتاج إلى تقييد البيانات يدويًا وتعيين الرؤوس لطلبات POST.
fetch('/api/user', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'John' }) });
أكسيوس:
يحتوي Axios على دعم مدمج لإلغاء الطلبات باستخدام CancelToken.
const source = axios.CancelToken.source(); axios.get('/api/user', { cancelToken: source.token }); source.cancel('Request canceled.');
أحضر:
باستخدام ميزة الجلب، ستحتاج إلى استخدام AbortController لإلغاء الطلبات، الأمر الذي قد يكون أكثر تعقيدًا بعض الشيء.
const controller = new AbortController(); fetch('/api/user', { signal: controller.signal }); controller.abort();
إذا كنت تفضل مزيدًا من التحكم في طلباتك، فقد تلتزم بالجلب. إذا كنت تريد شيئا يبسط طلبات HTTP، فإن أكسيوس سيكون الخيار الأفضل.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3