كيف طلب::is_ajax() العمل في Kohana?
سؤال
كيف 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';
}
لا تنتمي إلى StackOverflow