اذهب إلى المحتوى

السؤال

نشر

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

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

Recommended Posts

  • 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 {
  // نقوم هنا بإرسال الرد الافتراضي
}

 

  • 0
نشر (معدل)

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

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

 

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...