2013-07-15 19 views
9

Raylarım uygulamasında bir ActionView::MissingTemplate -exception nedeniyle bir istisna attı. Bunun nedeni, bir isteğin : */* değerine sahip bir ACCEPT http başlığı içermesidir. Uygulama bu format için bir şablon bulamadı (beklediğim şey). Kullanıcı aracı Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 olarak ayarlandı.HTTP_ACCEPT üstbilgisi ile istekte bulunan raylar: */* `

Bunun ne anlama geldiğini merak ediyorum (ve biraz endişeliyim). Bu, raylarla ilgili bir sorun mu, uygulamamla ilgili bir sorun mu yoksa bir saldırı vektörü mi? Bu istisnayı kurtarmayı ve HTML'ye ayarlanmış biçimi yanıtlamayı öneren benzer sorulara (ör. Ruby on Rails and strange HTTP_ACCEPT header from PSP) verilen yanıtları gördüm. Ancak, bu yaklaşımı kullanmadan önce : */*ACCEPT için kabul edilebilir bir değer olup olmadığını ve hangi tarayıcının bunu ayarlayacağını şimdi belirtmek isterim.

Rails'deyim 3.2.13.

+0

Merhaba, bir üretim uygulamasında aynı sorunu yaşıyorum. ': */* 'Başlıklı bir istekte bulunmaya devam ediyorum. Benim errbit örneğimde şu tarayıcıları gösterir: ** Chrome 27.0.1453.116 ** (Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Gecko gibi KHTML) Chrome/27.0.1453.116 Safari/537.36) ** Internet Explorer 7.0 ** (Mozilla/4.0 (uyumlu; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)) ** Keşfet (Explore 6.0). Henüz bir çözüm buldunuz mu? –

+1

Raylar sorunu izleyicisinden (https://github.com/rails/rails/issues/11704) sordum ve bu başlığın teknik özelliklere göre geçersiz olduğu görülüyor. Bu geçersiz üstbilgileri yok sayabilir veya bir ara katman yazılımı kullanarak bunları kurtarır ve biçimi html olarak ayarlarsınız. – fabi

cevap

4

Bu Rails'in MIME türü ayrıştırıcı bilinen ve antik, hata - ayrıntılar için this bug report bakın. Geçici çözümler var, ancak bir düzeltme tercih edilebilir!

+0

Teşekkürler, hata raporunda birçok ilginç bilgi ve bazı olası geçici çözümler var. Bunun hakkında hiçbir şey yapmaya karar verdim, çünkü sadece benim için bir kez oldu. – fabi

+1

'request.format =" html "' ile kurtarma, iyi bir çözümdür - bir hata sayfası göstermeye daha çok tercih edilir! –

+1

En son Rails'de sabit olduğunu düşünüyorum. –

0

Muhtemelen respond_to satırında yanlış siparişiniz varsa, ilkini şablonla eklemeyi deneyin. Örneğin varsayılan olarak html istiyorsanız:

respond_to do |format| 
    format.html 
    format.js 
end 
İlgili konular