0

我最近設置了一個使用cloudflare免費ssl的網站。當使用ajax調用分頁時,我得到一個混合的內容錯誤,我假設它是通過http傳輸的!我嘗試在這裏使用https重定向的指令:https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl 但是,這只是最後一個循環,給出了太多的重定向錯誤。Asp.net核心cloudflare ssl被封鎖的混合內容使用unobtrusive-ajax

這是關於混合內容的具體錯誤:

混合內容:在 頁「https://www.andysmobilearchery.co.uk/events/」裝載了HTTPS, 但要求一個不安全的XMLHttpRequest端點 「http://www.andysmobilearchery.co.uk/events/index/?page=2&x-requested-with=xmlhttprequest&=1502287619453」。 此請求已被阻止;內容必須通過HTTPS提供。

有沒有解決這個問題,或者我將不得不刪除ajax功能?

任何幫助表示讚賞!

@if (Model.Pager.EndPage > 1) 
{ 
    <ul class="pagination"> 
     @if (Model.Pager.CurrentPage > 1) 
     { 
      <li> 
       <a asp-controller="Events" asp-action="_Index" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#paged-content" asp-route-page="1" data-ajax-method="GET" asp-route-dfrom="@ViewBag.dfrom" asp-route-dto="@ViewBag.dto" asp-route-search="@ViewBag.search">First</a> 
      </li> 
       <li> 
        <a asp-controller="Events" asp-action="_Index" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#paged-content" data-ajax-method="GET" asp-route-page="@(Model.Pager.CurrentPage - 1)" asp-route-dfrom="@ViewBag.dfrom" asp-route-dto="@ViewBag.dto" asp-route-search="@ViewBag.search">Previous</a> 
       </li> 
     } 

     @for (var page = Model.Pager.StartPage; page <= Model.Pager.EndPage; page++) 
     { 
      <li class="@(page == Model.Pager.CurrentPage ? "active" : "")"> 
       <a asp-controller="Events"asp-action="_Index" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#paged-content" data-ajax-method="GET" asp-route-page="@page" asp-route-dfrom="@ViewBag.dfrom" asp-route-dto="@ViewBag.dto" asp-route-search="@ViewBag.search">@page</a> 
      </li>} 

     @if (Model.Pager.CurrentPage < Model.Pager.TotalPages) 
     { 
      <li> 
       <a asp-controller="Events" asp-action="_Index" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#paged-content" data-ajax-method="GET" asp-route-page="@(Model.Pager.CurrentPage + 1)" asp-route-dfrom="@ViewBag.dfrom" asp-route-dto="@ViewBag.dto" asp-route-search="@ViewBag.search">Next</a> 
      </li> 
       <li> 
        <a asp-controller="Events" asp-action="_Index" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#paged-content" data-ajax-method="GET" asp-route-page="@(Model.Pager.TotalPages)" asp-route-dfrom="@ViewBag.dfrom" asp-route-dto="@ViewBag.dto" asp-route-search="@ViewBag.search">Last</a> 
       </li> 
     } 
    </ul> 
} 

我現在已經注意到了其他網站,我有這樣的實施工作就好了(3人!),我使用asp.net樣板增加了一個尾部斜槓的URL,如果我禁用此活動頁面作品,但我的評論頁停止...我感到莫名其妙lol

+0

該消息中的案例的具體修復只是爲了使代碼執行XHR呼叫到'https://www.andysmobilearchery.co.uk/events/_index/?page=2&x-requested-with=xmlhttprequest&_ = 1502287619453'而不是(也就是說,'https'作爲協議部分而不是'http')。有什麼可以阻止嗎? – sideshowbarker

+0

我使用不顯眼的ajax,我不知道該協議的設置。我將編輯我的問題以顯示我的cshtml /剃鬚刀 –

回答

1

所以我找到了答案,種。

在我的應用我有路由選項添加斜線:

.AddRouting(
     options => 
     { 
       // Improve SEO by stopping duplicate URL's due to case differences or trailing slashes. 
       // See http://googlewebmastercentral.blogspot.co.uk/2010/04/to-slash-or-not-to-slash.html 
       // All generated URL's should append a trailing slash. 
       options.AppendTrailingSlash = true; 
       // All generated URL's should be lower-case. 
       options.LowercaseUrls = true; 
     }) 

我發現禁用這個工作,但是我並不滿足給定的,這個問題不會對我的其他網站出現。最後,我從一個可以解決問題的工作站點複製startup.cs,唯一的區別是我可以找到的是,破損的站點使用部分類來啓動,並且在構成啓動其餘部分的文件中唯一的區別是Cors方法,我不需要Cors,所以我不知道爲什麼它在那裏,仍然不應該打破它。自從我開始工作以來,它將不得不保持一段時間。我將要做的是在稍後的日子裏對應用進行一點點重構;如果我記得我會在這裏更新任何調查結果。