• 0

تمييز طلبات AJAX عن الطلبات التقليدية في node.js

أقوم باستخدام إطار العمل express في node.js، وأرغب بإجراء بعض الأوامر في حال كانت الطلبات قادمة من خلال AJAX فقط.

فكيف يمكنني تمييز الطلبات التي يتم إرسالها باستخدام AJAX من طرف المستخدم إلى الخادم؟ حاولت استخدام الغرض req الموجود ضمن إطار العمل express ولكن لم أجد فرق بين كل من النوعين

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

إن معظم أطر العمل من طرف المستخدم تقوم بإضافة X-Requested-With إلى ترويسة الطلب Header. وفي إطار العمل express تستطيع التأكد من أن الطلبات قادمة من خلال AJAX باستخدام الخاصية xhr كالتالي:

app.get('/test', function(req, res) {
  var isAjax = req.xhr;
  ...
});

أما في أطر العمل التي لا تقوم بإضافة هذه الترويسة مثل Angular، بهنا يحب عليك التأكد من أن الترويسة تستطيع قبول رد من النمط JSON أو XML كالتالي:

if (req.xhr || req.headers.accept.indexOf('json') > -1) {
  // نقوم هنا بإرسال الرد XHR
} else {
  // نقوم هنا بإرسال الرد الافتراضي
}

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

إضافة لما قدمه sam في حالة عدم تعيين req.xhr ، على سبيل المثال في أطر عمل مثل Angularjs ، حيث تمت إزالته ، فيجب عليك أيضًا التحقق مما إذا كان بإمكان الرأس قبول استجابة JSON (أو XML ، أو أيًا كان ما يرسله XHR كاستجابة بدلاً من HTML ).

if (req.xhr || req.headers.accept.indexOf('json') > -1) {
  // الخاص بك هنا  xhr إرسال رد
} else {
  // أرسل ردك الطبيعي هنا
}

 

تمّ تعديل بواسطة Ali Haidar Ahmad

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن