Laravel 7,AJAX 身份验证请求出现混合内容错误

Laravel 7, Mixed Content error on AJAX Auth request

在我的 Laravel 7 网站上,我有桌面版和移动版,服务器的 运行ning Apache,由启用了强制 HTTPS 的 Cloudflare(灵活 SSL/TLS)代理。

在桌面版中,身份验证是通过 <form> 标准进行的,它可以正常工作,但是会给出 [Deprecation] Synchronous XMLHttpRequest 警告。

在移动版中,身份验证是通过 AJAX 请求执行的。单击时会执行身份验证,但请求本身 returns 具有混合内容响应,因此 .done() 函数不会 运行。还有几个非授权 ajax 功能,可以完美运行。此外,使用 <form> 进行身份验证使其工作,但我更愿意继续使用 AJAX。

所以,我的猜测是登录控制器中的某些东西导致了问题,但我无法找出具体原因。

请求(已设置 CSRF 令牌):

 $.ajax({
      url: '/login',
      type: "POST",
      data: {
           email: $('input[name="login"]').val(),
           password: $('input[name="password"]').val(),
      }
 }).fail(function (xhr) {
      $('.alert-text').html('Wrong E-Mail or password');
 }).done(function (msg) {
      //
 });

登录控制器:

protected function authenticated()
{
    if (auth()->user()->active) {
        return redirect()->secure(Session::get('current_page'));
    } else {
        auth()->logout();
        return view('inactive_account');
    }
}

注销时也会发生完全相同的事情。

我试过在控制器中注释掉 return redirect,但没有帮助。

对于遇到此问题的人,问题出在 SSL 证书中。

我有一个来自 Cloudflare 的自签名,但是 none 在服务器本身上,所以服务器一直在返回不安全的响应。因此,要解决此问题,需要在服务器上获取 LE 证书并将 Cloudflare SSL/TLS 加密设置为完全。