我知道這是一個很長的過程,但我想我仍然會問這個問題。如何從HTTPS頁面將數據發佈到HTTP頁面
我有一個HTTPS頁面,並且正在動態創建一個表單。我想將表單發佈到HTTP頁面。這可能沒有瀏覽器彈出警告?當我在IE8上這樣做時,我收到以下消息:
Do you want to view only the webpage content that was delivered securely?
本質上講,我問的問題1554237.
我知道這是一個很長的過程,但我想我仍然會問這個問題。如何從HTTPS頁面將數據發佈到HTTP頁面
我有一個HTTPS頁面,並且正在動態創建一個表單。我想將表單發佈到HTTP頁面。這可能沒有瀏覽器彈出警告?當我在IE8上這樣做時,我收到以下消息:
Do you want to view only the webpage content that was delivered securely?
本質上講,我問的問題1554237.
的逆可悲的是,據我所知,絕對沒有辦法從HTTPS發佈到HTTP時,沒有得到警告。如果您安全地提供表單,瀏覽器也會安全地提交數據。如果有其他可能的話,它會讓用戶感到驚訝。
您可以通過充當形式目的地自己的代理解決這個問題(即讓表單提交到服務器這反過來又觸發一個正常的HTTP請求,並返回響應),或讓訪問與該頁面僅由HTTP形式。
如果您不需要實際重定向到不安全的頁面,則可以提供一個Web服務(已驗證),該請求會觸發您的請求並返回數據。
例如: 從已通過身份驗證的頁面,您可以撥打doInsecure.action
,通過https將其創建爲Web服務。然後doInsecure.action
向不安全頁面發出手動POST請求並輸出響應數據。
你應該可以使用Forge開源項目來做到這一點,但這聽起來像是矯枉過正。 Forge項目提供了一個可以進行跨域請求的JavaScript接口(和XmlHttpRequest包裝器)。底層實現使用Flash來啓用跨域(包括http < => https)通信。
http://github.com/digitalbazaar/forge/blob/master/README
所以,你會從你的服務器通過https載入僞造的JavaScript和SWF,然後做通過HTTP基於鍛造,XMLHttpRequest來執行POST。這將使您無需在服務器上執行任何代理工作,但同樣,這可能比僅通過https支持POST更有用。此外,這裏的假設是,在發佈的表單中沒有任何保密信息。
有一種方法可以做到這一點,如果你寫自己的後端服務。因此,假設您要使用前端服務fs1向s1發佈HTTP請求。
如果你使用Spring,你可以使用從FS1一個AJAX調用由您春季後端承認的「URI」,說BS1。現在,服務bs1可以打電話給s1。
繪畫作品在這裏:http://i.stack.imgur.com/2lTxL.png
代碼:
$.ajax
({
type: "POST",
uri:/json/<methodName>
data: $('#Form').serialize(),
success: function(response)
{
//handle success here
},
error: function (errorResponse)
{
//handle failure here
}
})
標題與問題相矛盾。您是否從HTTPS發佈到HTTP或HTTPS?錯誤信息至少與後者相矛盾。 – BalusC 2010-04-20 18:18:37
你的問題是,我相信,不正確。假設你的意思是「到HTTP」頁面.... – jvenema 2010-04-20 18:19:03
不知道爲什麼你甚至想要這樣做,你想做什麼?它是不同的域,它是強制ssl? – 2010-04-20 18:20:22