2012-01-17 13 views
5

Muszę zaimplementować proxy w aplikacji Rails 3.1, aby przezwyciężyć niektóre problemy z JS między domenami.Railsowy kontroler proxy nie prawidłowo przechwytuje obrazy, jak odpowiednio zmodyfikować?

Do tej pory mam odzyskiwanie źródła tekstu strony internetowej z pozoru słusznego, jednak zwykle pomija on obrazy (być może ścieżki względne?) Na stronie, a kiedy skieruję je bezwzględną ścieżką do obrazu, pokaże on raczej ascii encoding of the image niż sam obraz, myślę z oczywistych powodów z kodu dla kogoś, kto zna ten temat.

miałem nadzieję, że ktoś będzie w stanie zmienić następujący kod tak, aby prawidłowo pracować także z sytuacji proxy obrazu:

proxy_controller.rb:

class ProxyController < ApplicationController 
    def get 
    url = URI.parse(params["url"]) 
    result = Net::HTTP.get_response(url) 
     render :text => result.body 
    end 
end 

routes.rb :

get "proxy" => "proxy#get", :as => "proxy" 

Nazywając to v IA:

http://<my_dev_server>/proxy?url=http://<somedomain.tld>/path/to/page/images/image.jpg 

lub

http://<my_dev_server>/proxy?url=http://<somedomain.tld>/path/to/page 

Odpowiedz

9

zamiast uczynić, należy send_data

+0

OK, tak, wydaje się, że może to załatwić sprawę, jednak każda próba z tym związana doprowadziła po prostu do bezpośredniego pobrania pliku, a następnie załadowania obrazu do przeglądarki lub załadowania strony internetowej do przeglądarki . Nie może to być w końcu wielka sprawa, ale moim celem jest przekazanie jej przez nokogiri, aby wyciągnąć konkretną nazwę pliku, którą należy zmanipulować. – ylluminate

+0

należy ustawić poprawny typ zawartości, aby przeglądarka wiedziała, jak obsługiwać przychodzące treści ... – elijah

+0

Na przykład w tym przypadku wydaje się, że nie mogę mieć uniwersalnego proxy, tj. Muszę utworzyć 'image_proxy' i' general_proxy' kontra catch all, jeśli dobrze cię rozumiem? – ylluminate

0

myślę, że należy użyć base64 kodowanie jeśli będzie to pokazać się na html

send_data Base64.encode64(result.body), type: result.content_type, disposition: 'inline' 

oraz w żądaniach html i javascript przy użyciu

Powiązane problemy