0

我最近建立了一个使用 cloudflare 免费 ssl 的网站。当使用 ajax 调用进行分页时,我得到一个混合内容错误,我认为是因为它仍然在某个时候通过 http 传输!?我尝试在此处使用 https 重定向的说明:https: //docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl 但这只是在一个循环中结束,给出了太多重定向错误。

这是与混合内容有关的特定错误:

混合内容:“ 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 中添加一个斜杠,如果我禁用它,事件页面可以工作,但我的评论页面停止...我很困惑哈哈

4

1 回答 1

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,所以我不知道它为什么在那里,但那不应该破坏它。自从我让它工作以来,它必须在一段时间内保持神秘。我要做的是在以后一点一点地重新构建应用程序;如果我记得我会在这里更新任何发现。

于 2017-08-09T19:34:26.123 回答