【发布时间】:2017-08-09 14:31:44
【问题描述】:
我最近建立了一个使用 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 中添加一个斜杠,如果我禁用它,事件页面可以工作,但是我的评论页面停止...我很困惑哈哈
【问题讨论】:
-
对该消息中情况的具体修复只是让代码对
https://www.andysmobilearchery.co.uk/events/_index/?page=2&x-requested-with=xmlhttprequest&_=1502287619453进行XHR调用(也就是说,使用https作为协议部分,而不仅仅是http)。有什么可以防止这种情况发生吗? -
我正在使用不显眼的 ajax,我不知道协议的设置。我将编辑我的问题以显示我的 cshtml / razor
标签: asp.net-core cloudflare mixed-content unobtrusive-ajax asp.net-boilerplate