我对.NET MVC5应用程序有一些独特的情况,我需要通过HTTP呈现主页/欢迎页面/视图,因为有一些锚链接使用在大多数浏览器中不被视为安全的图像。因此,目前发生的情况是,除非您在IE中选择“显示所有内容”,并且在其他浏览器中调整其他一些设置,否则这些链接不是“可点击的”。从非SSL页面调用支持SSL的页面
点击一个图片链接会产生一个jquery模式菜单,它将用户引导到一个“条款和条件”模式,如果他们点击“确认”,则调用一个帐户控制器/ CreateGuest方法。我有用[RequireHTTPSAttribute]装饰的帐户控制器,所以此资源需要HTTPS请求。
这是一把双刃剑,因为我的基础控制器加载主页/欢迎页面视图需要HTTP,因为图像链接,所以这需要保持非SSL。我想我的问题是,如果有什么,可以做什么来加密帐户/ CreateGuest的“条款和条件”AJAX调用?由于JavaScript的同源策略,我没有看到太多的解决方法。或者更好的是,有什么方法可以使我的图像链接“安全”?
下面是一些代码:
我想使“安全”的链接二,如果在所有可能的。很简单:
<div class="row">
<div class="col-xs-12 homespacer">
<div class="col-xs-2 hometype" style="text-align:right;">Some text</div>
<div class="col-xs-4 nopad">
<a id="Type1" value="1" href='#'>
<img style="width: 300px; float: left" src='@Url.Content("~/Images/theimage1.jpg")' />
</a>
</div>
<div class="col-xs-4 nopad">
<a id="Type2" value="3" href='#'>
<img style="width: 300px; float: right" src='@Url.Content("~/Images/theimage2.jpg")' />
</a>
</div>
<div class="col-xs-2 homelabeltype">Some more text</div>
</div>
</div>
这里的JQuery的的条款和条件 - 帐户/ CreateGuest资源调用产生的日志预期的错误:“请求的资源只能通过SSL访问”:
// Create Guest account and project with selected type
$(function() {
$("#termsAccept").on('click', function (e) {
kendo.ui.progress($("#floatingRectangle"), true);
var id = $("#Type").val();
$.ajax({
type: "POST",
url: "/Account/CreateGuest/" + id,
data: AddAntiForgeryToken({ lt: id }),
contentType: 'application/x-www-form-urlencoded',
success: function (result) {
window.location.href = "@Url.Content("~/Project/Edit")";
},
error: function (result) {
alert('error');
}
});
})
})
任何帮助表示赞赏。