لدي تطبيق ريلز باستخدام العمود الفقري. عندما أنقر فوق الزر الخلفي أو الزر الأمامي بشكل عشوائي ، سأرى json.
يمكنك تقديم مزيد من المعلومات؟ يستخدم العديد من الأشخاص العمود الفقري في الإنتاج مع ريلز في الوقت الحالي ولا يرون نفس السلوك.
يرجى تحديد حالة اختبار حتى نتمكن من إعادة إنتاج المشكلة بدقة.
أواجه نفس الشيء - كلما انتقلت إلى عنوان url خارجي (لا يتم التعامل معه بواسطة تطبيق العمود الفقري) أو أغلق علامة التبويب ثم أعود أو أعيد فتح علامة التبويب - أرى JSON. لست متأكدًا من كيفية تقديم حالة اختبار ، ولكن يمكنني مشاركة بعض التفاصيل التي قد تعطيك فكرة عما يحدث.
يستخدم التطبيق وظيفة _.delay لمزامنة مجموعة النماذج مع الخادم (collection.fetch ()). الخادم هو تطبيق RoR يخدم كلاً من التطبيق و JSON للمزامنة على نفس عنوان URL ويستخدم الرؤوس لتحديد ما إذا كان يحتاج إلى خدمة التطبيق بالكامل أو مجرد مجموعة من بيانات JSON للنماذج. هل يمكن أن تكون هذه هي المشكلة؟
فكرتي الأخرى ، هي أن المتصفح يخزن آخر طلب تم إجراؤه على الخادم ، وعندما تضغط عليه ، فإنه يعرضه. إذا تمكنت من مغادرة التطبيق بسرعة (قبل طلب المزامنة الأول) ، فإن الرجوع يعرض التطبيق (وليس JSON).
هل لديك أي أفكار حول كيفية التغلب على هذا؟
لقد حللت المشكلة من خلال القيام بذلك
$.ajaxSetup
beforeSend: (xhr) ->
xhr.setRequestHeader "Accept", "application/json"
cache: false
شكرا!
لي
$.ajaxSetup
cache: false
كان كافيا
+1
+1
واجهت نفس المشكلة في تطبيق RoR الخاص بي وعمل الحل الذي قدمته معي.
بفضلomenkingantonlitvinenko
والأفضل من ذلك ، قم دائمًا بإضافة امتداد .json
بشكل صريح إلى عناوين url الخاصة بك ، ودع المتصفح يخزن كلاً من json و page html (إذا كنت لا تمانع في ذلك) ، على سبيل المثال /users/1
+ /users/1.json
بدلاً من الكتابة فوق إدخال ذاكرة التخزين المؤقت لنفس عنوان url. وإلا ستفقد فوائد التخزين المؤقت للمتصفح (وهو أمر جيد ، أليس كذلك؟ ؛)) فقط 2c.
Sija أنت على حق ، لكنني غيرت إلى .json صريح وعندما أقوم بإجراء اختبار ، تم تلقي نفس مشكلة json فوق الصفحة. هل لديك أي فكرة عما أفعله خطأ؟ الكالينجيون
تكس
+1
التعليق الأكثر فائدة
شكرا!
لي
كان كافيا