🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #1237

Re: Opera + respond_to + ROR

#1237
From: =?utf-8?B?SmFyb3
Date: Tue, 02 Jun 2009 20:09
51 lines
1943 bytes
Dnia 02-06-2009 o 19:07:55 Zbyszek Malec <zbyszekto@tlen.pl> napisał(a):

ROR 2.2.2
JRuby 1.1.4
RESTFulAuthentication

w RESTFulAuthentication jest metoda:

    def access_denied
      respond_to do |format|
        format.html do
          store_location
          redirect_to new_<%= controller_singular_name %>_path
        end
        format.any do
          request_http_basic_authentication 'Web Password'
        end
      end
    end

czyli jak przeglądarka wysłała, że reaguje na html, to powinno nastąpić
przekierowanie, w przeciwnym przypadku, powinno odbyć się HTTP Basic Auth.
Opera wysyła taki HTTP_ACCEPT:

application/xhtml+voice+xml;version=1.2,
application/x-xhtml+voice+xml;version=1.2, text/html,
application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg,
image/gif, image/x-xbitmap, */*;q=0.1

czyli text/html jest obecne jako pierwsze,

Niekoniecznie. Zobacz co się kryje pod zmienną format. Sprawdź czy zadziała ci dla format.xml. Założe się, że to RoR rozpoznaje jako XML, a nie HTML. W RoR 2.2 w pliku ...gems/actionpack-2.2.2/lib/action_controller/mime_types.rb masz wszystkie deficje MIME jakie są rozpoznawane przez ActionPack. I tam nie ma żadnego application/xhtml+voice+xml.

Mime::Type.register "*/*", :all
..
Mime::Type.register "text/html", :html, %w( application/xhtml+xml ), %w( xhtml )
...
Mime::Type.register "application/xml", :xml, %w( text/xml application/x-xml )

Jeśli tu jest problem to rozwiązana są dwa. Albo obsługujesz to przez format.xml zamiast format.html albo (lepiej) dodaj do Mime::Type.register "operowy" MIME.

Sprawa jest w sumie śliska, bo XHTML to aplikacja XML tak naprawdę. Czyli poprawne jest parsowanie XHTML jako HTML jak i jako XML.


Acha, znalazłem info na http://www.iana.org/assignments/media-types/application/, że xhtml-voice+xml to format przestarzały i nieaktualny.

--
Jarosław Zabiełło
http://blog.zabiello.com


Message-ID: <op.uuwvhawdk434cn@zbiru-at-home-5.local>
Path: polish.pugleaf.net!archive.newsdeef.eu!mbox2nntp-pl.comp.lang.ruby.mbox.zip!g2news2.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!194.25.134.126.MISMATCH!newsfeed01.sul.t-online.de!newsfeed00.sul.t-online.de!t-online.de!news.nask.pl!news.nask.org.pl!news.internetia.pl!newsfeed.gazeta.pl!news.gazeta.pl!not-for-mail
References: <12a2gaz88lk5a.ruqo5f6ex5ff.dlg@40tude.net>