2010-04-20 121 views
1

我知道這是一個很長的過程,但我想我仍然會問這個問題。如何從HTTPS頁面將數據發佈到HTTP頁面

我有一個HTTPS頁面,並且正在動態創建一個表單。我想將表單發佈到HTTP頁面。這可能沒有瀏覽器彈出警告?當我在IE8上這樣做時,我收到以下消息:

Do you want to view only the webpage content that was delivered securely

本質上講,我問的問題1554237.

+1

標題與問題相矛盾。您是否從HTTPS發佈到HTTP或HTTPS?錯誤信息至少與後者相矛盾。 – BalusC 2010-04-20 18:18:37

+0

你的問題是,我相信,不正確。假設你的意思是「到HTTP」頁面.... – jvenema 2010-04-20 18:19:03

+0

不知道爲什麼你甚至想要這樣做,你想做什麼?它是不同的域,它是強制ssl? – 2010-04-20 18:20:22

回答

1

的逆可悲的是,據我所知,絕對沒有辦法從HTTPS發佈到HTTP時,沒有得到警告。如果您安全地提供表單,瀏覽器也會安全地提交數據。如果有其他可能的話,它會讓用戶感到驚訝。

1

不行,不能做。我們的好朋友IE總是會彈出警告。

+0

如果您嘗試使用ajax,會發生什麼情況? – zaf 2010-04-20 18:23:26

+0

Ajax將無法工作(在頁面底部創建警告),但您可以繞過它,正如我所建議的。 – 2010-04-20 18:34:27

+1

爲什麼選擇倒票?確實,這不可能完成,請參閱@ sblom的帖子。 – Nate 2010-04-20 18:39:05

0

您可以通過充當形式目的地自己的代理解決這個問題(即讓表單提交到服務器這反過來又觸發一個正常的HTTP請求,並返回響應),或讓訪問與該頁面僅由HTTP形式。

0

如果您不需要實際重定向到不安全的頁面,則可以提供一個Web服務(已驗證),該請求會觸發您的請求並返回數據。

例如: 從已通過身份驗證的頁面,您可以撥打doInsecure.action,通過https將其創建爲Web服務。然後doInsecure.action向不安全頁面發出手動POST請求並輸出響應數據。

0

你應該可以使用Forge開源項目來做到這一點,但這聽起來像是矯枉過正。 Forge項目提供了一個可以進行跨域請求的JavaScript接口(和XmlHttpRequest包裝器)。底層實現使用Flash來啓用跨域(包括http < => https)通信。

http://github.com/digitalbazaar/forge/blob/master/README

所以,你會從你的服務器通過https載入僞造的JavaScript和SWF,然後做通過HTTP基於鍛造,XMLHttpRequest來執行POST。這將使您無需在服務器上執行任何代理工作,但同樣,這可能比僅通過https支持POST更有用。此外,這裏的假設是,在發佈的表單中沒有任何保密信息。

1

有一種方法可以做到這一點,如果你寫自己的後端服務。因此,假設您要使用前端服務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 
} 
}) 
相關問題