javascript - 混合内容 jQuery ajax HTTPS 请求已在 Laravel 上被阻止

标签 javascript jquery laravel xmlhttprequest cloudways

我认为这个问题对某些人来说很容易,对我来说将是一个面子问题。

我有一个 Laravel 5.3 站点,各个页面都有 ajax 请求。因为我使用 csrf_field()功能,它们工作正常。

但是有一个页面的 ajax 产生了这个错误:

Mixed Content: The page at 'https://example.com/fb/reports' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://example.com/fb/json?levelType=&id=&aggLevel=ad&start=&end='. This request has been blocked; the content must be served over HTTPS.

我的 javascript 看起来像这样:

    var relUrl = '/fb/json/';
    var payload = {
        levelType: levelType,
        id: id,
        aggLevel: aggLevel,
        start: start,
        end: end
    };
    console.log(relUrl);
    return $.ajax({
        type: 'GET',
        dataType: 'json',
        data: payload,
        url: relUrl,
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }            
    });

我已经阅读了大量 篇关于此错误的文章。我已经尝试了大量建议的解决方案,包括将相对 URL 更改为完整的 https URL,或者以 2 个斜杠开头。

我什至尝试过更改我的 Laravel 路由的工作方式,现在我只使用查询字符串参数。

我研究了以下所有文章(以及更多)。

此外,由于这个 ajax 查询位于站点的密码保护部分(工作 的 ajax 查询位于站点的公共(public)/开放部分),我想也许与问题有关。但是后来我使用 SSH 登录生产服务器并使用 vim 暂时删除需要任何身份验证的行,并且 https 错误仍然发生.

从这里我可以采取什么步骤来进一步调试?我可以在 Cloudways 服务器上“跟踪”哪些日志?

Cloudflare 是否会干扰任何内容(我对此表示怀疑,因为其他 ajax 查询都在 https 上运行)?

谢谢!

最佳答案

总结: 我需要将 var relUrl = '/fb/json/'; 替换为 var relUrl = '/fb/json'; (删除尾部斜杠),因为这就是我的需要 Laravel web.php 路由文件。


在 Chrome 控制台中,我注意到 https XHR 请求被“取消”并替换为 http 请求。

然后我使用 ssh 登录到远程生产服务器,并使用 vim 暂时禁用身份验证要求。

然后在 Chrome 控制台中,我使用绝对 https URL 定义并运行了一个新的 ajax 命令,末尾带有查询字符串参数。那行得通(没有混合内容错误)。然后我尝试了一个类似的相对 URL,它也有效。

即使是没有有效负载或查询字符串参数或尾部斜杠的相对 URL 也可以。

然后我再次添加了尾部斜线,但没有用。

我仍然希望有一种更简单的方法来跟踪或调试重定向路径或发生的任何事情。我仍然觉得我笨拙地(在几个小时后)找到了答案,而不是知道如何可靠地剖析这个问题。

关于javascript - 混合内容 jQuery ajax HTTPS 请求已在 Laravel 上被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41865180/

相关文章:

javascript - AngularJS 使用参数创建部分模板

javascript - 如何将表单中的多个复选框字段分配给ajax请求

javascript - 我如何在 jQuery 中使用 preg_match?

php - 找不到 Laravel 5 模型命名空间类

php - Laravel 5 $user->first()->delete() 删除所有用户

javascript - Knockout.js - 数组/对象文字和访问音频路径的属性

javascript - 这段代码可以写得更短吗?

jquery - 重置或更改 jQuery 插件的幻灯片数组

php - 如何打印将在 laravel 5.1 中执行的更新查询

javascript - 使用 。反引号内的运算符 javascript