如何从HTTPS页面将数据发布到HTTP页面
我知道这是一个很长的过程,但我想我仍然会问这个问题。如何从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