我有一个.NET MVC5应用程序的独特情况,我需要通过HTTP呈现主页/欢迎页面/视图,因为有些锚链接使用的图像在大多数浏览器中都不被视为安全。所以目前正在发生的是这些链接不是“可点击的”,除非您在IE中选择“显示所有内容”,并在其他浏览器中调整其他一些设置。
单击图像链接会生成一个jquery模式菜单,该菜单会将用户指向“条款和条件”模式,如果他们单击“确认”,则会调用帐户控制器/ CreateGuest方法。我的帐户控制器装饰有[RequireHTTPSAttribute],因此该资源需要HTTPS请求。
这是一把双刃剑,因为我的基本控制器加载主页/欢迎页面视图需要是HTTP,因为图像链接,所以这需要保持非SSL。我想我的问题是,如果有的话,可以加密AJAX调用Account / CreateGuest的“条款和条件”?由于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 - Account / 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');
}
});
})
})
感谢任何帮助。
答案 0 :(得分:0)
我明白了。我有一个JQuery引用,硬编码为http://code.jquery.com/....etc。我将其更改为相对路径,所有混合内容现在都以https形式发布。