2016-05-16 33 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的形式出現。