2016-05-16 56 views
0

我对.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'); 
       } 
      }); 
     }) 
    }) 

任何帮助表示赞赏。

回答

0

我想通了。我有一个硬编码为http://code.jquery.com/....etc的JQuery参考。我将其改为相对路径,所有混合内容现在都以https的形式出现。