سؤال

كيف Kohana تحديد ما إذا كان طلب AJAX ؟

هل هناك أي شيء مختلف في المرجع السلسلة ؟ هل أنا بحاجة إلى إضافة على المعلمة ، وربما ?ajax=true ?

هل كانت مفيدة؟

المحلول

يتحقق إذا تم تقديم الطلب بواسطة xmlhttprequest لأن معظم المتصفح إرسال رأس في هذه الحالة مع هذا المؤشر: رأس HTTP_X_REQUESTED_WITH سيتم ضبطها على XMLHttpRequest.

نصائح أخرى

اعتبارا من v2.3.4

/**
 * Tests if the current request is an AJAX request by checking the 
 * X-Requested-With HTTP request header that most popular JS frameworks 
 * now set for AJAX calls.
 *
 * @return  boolean
 */

public static function is_ajax()
{
  return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND 
          strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');
}

نيكرو-نشر لأن هذا جاء أول بحث جوجل

لا أعرف إذا Kohana لا يزال يعمل بهذه الطريقة ولكن باستخدام HTTP_X_REQUESTED_WITH لم يعد من أفضل الممارسات.

طلبات اياكس-كل طلبات HTTP فعلا-يجب إرسال "يقبل رأس".

أي من جانب الخادم العملية ينبغي أن تدرس على "قبول" رأس لتحديد ما المحتوى أرسل ردا على ذلك.طريقة واحدة للقيام بذلك في PHP هو:

  function is_ajax() {
    return $_SERVER['HTTP_ACCEPT'] == 'application/json';
  }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top