[google-chrome] "تنبيه: تظهر الرؤوس المؤقتة" في مصحح Chrome



12 Answers

أعتقد أنه يحدث عندما لا يتم إرسال الطلب الفعلي. يحدث عادة عندما تقوم بتحميل مورد تم تخزينه مؤقتًا.

Question

لاحظت رسالة تحذير غريبة عند الاطلاع على الموارد التي تم تنزيلها باستخدام Google chrome inspector (F12):

يتم عرض رؤوس مؤقتة التحذير

لقد وجدت شيئًا قد يكون مناسبًا ، Network Panel: أضف الحذر حول رؤوس الطلبات المؤقتة ، لكن لم أتمكن من فهمها تمامًا. يمكن العثور على الأسئلة ذات الصلة طلبات حظر Chrome وكذلك لا يمكن تحميل XMLHttpRequest. تظهر الموارد التي تم تحميلها تحذيرًا: يتم عرض الرؤوس المؤقتة .

على غرار السؤال الأول ، تم حظر المورد ، ولكن لاحقًا تم تحميل نفس المورد تلقائيًا. على عكس السؤال الثاني ، لا أريد إصلاح أي شيء. أريد أن أعرف ما تعنيه هذه الرسالة ولماذا تلقيتها.




السبب الشائع وراء حدوث ذلك هو إذا كنت تتابع حدثًا ولم تمنع الإجراء الافتراضي. على سبيل المثال ، إذا كان لديك حدث نقرة ، فستحتاج إلى تضمين:

e.preventDefault();

أو

return false;

إذا لم تقم بذلك ، فستشاهد تحذير الرؤوس المؤقتة بالإضافة إلى حالة "تم إلغاؤها" في علامة التبويب "الشبكة" في وحدة تحكم الويب الخاصة بك.




رأيت ذلك يحدث عندما يتجاوز عدد الاتصالات إلى خادمي الحد الأقصى لتكلفة خادم لكل خادم من Chrome يبلغ 6.




كان هذا يحدث لي ، عندما كان لدي رابط تنزيل وبعد النقر عليه كنت أحاول أيضًا النقر على jquery وإرسال طلب ajax. تكمن المشكلة في أنك عندما تنقر على رابط التنزيل ، فأنت تغادر الصفحة ، حتى إنها لا تبدو كذلك. إذا لم يكن هناك نقل للملفات ، فسترى الصفحة المطلوبة .. لذا قمت بتعيين هدف = "_ blank" لمنع هذه المشكلة.




لقد قمت بتشغيل هذه المشكلة عندما حاولت تحميل main.js لطلب js للمرة الثانية بعد أن قمت بإجراء تغييرات كنتيجة لخطأ. أنا فقط قيد التشغيل في إعدادات أدوات المطور "تعطيل ذاكرة التخزين المؤقت (عند فتح DevTools)". وهذا فعل السحر.




تحدث هذه الرسالة التحذيرية أيضًا إذا كانت الاستجابة غير صالحة وبالتالي تم إسقاطها بواسطة المتصفح.

في حالتي تم إرسال الطلب بشكل صحيح إلى الخادم ، ثم أصدر رمز جانب الخادم خطأً وأعاد معالجة الخطأ المخصص رسالة الخطأ في حقل رسالة حالة HTTP. ولكن لم يتم تلقي هذا الخطأ على جانب العميل ، نظرًا لوجود أحرف غير صالحة في رسالة الخطأ (الموضحة هنا http://aspnetwebstack.codeplex.com/workitem/1386 ) والتي أدت إلى ظهور رؤوس استجابة تالفة.




مجرد رمي في بلدي سنتا. أكتب لك تطبيق ويب باستخدام طلبات CORS وخدمة RESTful كاملة على الويب. لقد وجدت أن Chrome سيرمي هذا الخطأ عندما يكون لدي استثناء غير مألوف أو خطأ PHP. فقط طارئ أي شخص آخر يتعارض مع المشكلة. لقد اكتشفت أنه عند حدوث ذلك ، يمكنني إطلاق تطبيق Chrome "Postman - Rest Client" وتشغيل الطلب نفسه تمامًا ولكن في تطبيق Chrome ، سأحصل فعلاً على خطأ PHP الذي يتم طرحه بدلاً من هذا الخطأ غير الوصفي.




إذا كنت تقوم بتطوير تطبيق Asp.Net Mvc وكنت تحاول إرجاع JsonResult في وحدة التحكم الخاصة بك ، تأكد من إضافة JsonRequestBehavior.AllowGet إلى الأسلوب JsonRequestBehavior.AllowGet . هذا ثابت لي.

public JsonResult GetTaskSubCategories(int id)
{
    var subcategs = FindSubCategories(id);

    return Json(subcategs, JsonRequestBehavior.AllowGet);  //<-- Notice it has two parameters
}



لقد تلقيت هذا الأمر مؤخرًا (اليوم في واقع الأمر) حيث تلقيت مكالمة AJAX تخرج إلى الخادم ، وأطلق Chrome النيران على "تنبيه: تظهر الرؤوس المؤقتة". في لغة برمجة PHP من جانب الخادم ، هناك استعلامات MySQL التي يمكن أن تكون فورية إلى حد كبير أو تأخذ بضع ثوان حسب السيناريو المعطى. لا يتم إرسال استجابة الخادم إلى المتصفح حتى تكتمل طلبات البحث. لقد عثرت على هذا الخطأ فقط عندما يتم تنفيذ طلبات تستغرق وقتًا طويلاً (يصل إلى إجمالي بضع ثوان) وتمنع الرد من الرد.

يتضمن سيناريو احتمال نادرة جداً الحاجة إلى تغيير جدول بواسطة إضافة / إزالة مئات الأعمدة من أجل الإخراج طراز الطقس ... لذلك تتأخر الاستجابة من تكرار خلال حلقة من استعلامات ALTER TABLE.




كان لدي مشكلة مشابهة مع تطبيق MEAN. في حالتي ، كانت المشكلة تحدث في طلب واحد فقط. حاولت مع إزالة adblock ، حاول مسح ذاكرة التخزين المؤقت وحاول مع المتصفحات المختلفة. لا شيء ساعد.

في النهاية ، اكتشفت أن api كان يحاول إرجاع كائن JSON ضخم. عندما حاولت إرسال كائن صغير ، كان يعمل بشكل جيد. أخيرًا ، قمت بتغيير التنفيذ الخاص بي لإرجاع مخزن مؤقت بدلاً من JSON.

أتمنى التعبير عن JS لإلقاء خطأ في هذه الحالة.




يمكن أن تحدث هذه الرسالة عندما يكون موقع الويب محميًا باستخدام HSTS . بعد ذلك ، عندما يربط أحد الأشخاص بإصدار HTTP من عنوان URL ، لا يُصدر المتصفح ، وفقًا للتعليمات من قِبل HSTS ، طلب HTTP ، ولكنه يعيد التوجيه إلى مورد HTTPS داخليًا بشكل آمن. هذا لتجنب هجمات تقليل HTTPS مثل sslstrip .




استخدم قبضة الرمز هذه من شفرتك:

header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');

هذا يعمل بالنسبة لي.




HTTP / 2 الموارد التي تم توجيهها ستنتج Provisional headers are shown في المفتش لنفس النظرية مثل @ wvega في إجابته أعلاه .

على سبيل المثال: منذ أن قام الخادم بدفع المورد (الموارد) إلى العميل ( قبل أن يطلب العميل ذلك ) ، فإن المستعرض لديه الموارد المخزنة مؤقتًا وبالتالي لا يقوم العميل أبدًا / يحتاج إلى طلبات ؛ لان...

... يتم تحديث الرؤوس الحقيقية عند استجابة الخادم ، ولكن لا توجد استجابة إذا تم حظر الطلب.






Related