我試圖在我的Rails應用程序中構建一個視圖,該鏡像可以映射外部網站上的頁面。所以基本上,不是鏈接到外部頁面,該外部頁面將顯示在我的視圖中。如何在我的導軌視圖中顯示外部站點?
有沒有辦法做到這一點,而不使用iFrame或是唯一的方法?
我試圖在我的Rails應用程序中構建一個視圖,該鏡像可以映射外部網站上的頁面。所以基本上,不是鏈接到外部頁面,該外部頁面將顯示在我的視圖中。如何在我的導軌視圖中顯示外部站點?
有沒有辦法做到這一點,而不使用iFrame或是唯一的方法?
您可以使用Javascript從外部網站加載內容,並將其顯示在您的視圖中。
下面是代碼:
<script>
$("#externalSiteContent").load("http://www.example.com/index.html");
</script>
<div id="externalSiteContent"></div>
這是一個全軌的方法:
class YahooController < ApplicationController
layout false
def show
url = URI.parse('http://www.yahoo.com/')
req = Net::HTTP::Get.new(url.to_s)
res = Net::HTTP.start(url.host, url.port) {|http|
http.request(req)
}
@body = res.body
end
end
在視圖
# views/yahoo/show.html.haml
= @body.html_safe
當然,你需要一個路線對此。
# routes.rb
get '/yahoo', :to => 'yahoo#show'
這樣做似乎並沒有加載外部網站的資產 – user3317171
他們是相對的,你需要更新相關的網址。 – Swards
解決這個問題的另一種方法是在頭標籤中添加一個基本標籤。 – Swards
這個很好用! – user3317171
如果您認爲答案適合您,並且是最好的,您可以接受它。 –
所以這適用於一些網站,但大多數網站,我遇到了CORs問題:我得到這個錯誤:XMLHttpRequest無法加載「外部網站」。請求的資源上沒有「Access-Control-Allow-Origin」標題。原因'http:// localhost:3000'因此不被允許訪問。該響應具有HTTP狀態碼404。是否有解決方法? – user3317171