从非SSL页面

时间:2016-05-16 16:17:53

标签: jquery asp.net-mvc ssl

我有一个.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');
                }
            });
        })
    })

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我明白了。我有一个JQuery引用,硬编码为http://code.jquery.com/....etc。我将其更改为相对路径,所有混合内容现在都以https形式发布。