使用 Laravel 和 Select2 向 HTTP 提供 HTTPS 的 jQuery AJAX 请求

Posted

技术标签:

【中文标题】使用 Laravel 和 Select2 向 HTTP 提供 HTTPS 的 jQuery AJAX 请求【英文标题】:jQuery AJAX Request to HTTPS getting served to HTTP with Laravel and Select2 【发布时间】:2016-06-30 18:11:22 【问题描述】:

我有一个相对简单的 Laravel 应用程序,它具有一个包含标签选择元素的 html 表单。 select 元素通过 select2 库得到增强。标签是通过 XMLHttpRequest 获取的。我有created a fiddle,我收到的错误与我的生产机器上的相同:

[...] 已通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点“http://blog.mazedlx.net/tags?term=asd”。此请求已被阻止;内容必须通过 HTTPS 提供。

$('#tags_id').select2(
    minimumInputLength: 2,
    tags: true,
    tokenSeparators: [','],
    ajax: 
        url: 'https://blog.mazedlx.net/tags/',
        type: 'GET',
        dataType: 'json',
        data: function (params) 
            var queryParameters = 
                term: params.term
            
            return queryParameters;
        ,
        processResults: function (data) 
            return 
                results: $.map(data, function (item) 
                    return 
                        text: item.tag,
                        id: item.id
                    ;
                )
            ;
        
    
);

正如您在小提琴中看到的,ajax url 包含 https,并且包含表单的页面也通过 https 提供。 url 也会产生结果:例如https://blog.mazedlx.net/tags?term=php。我做错了什么?

【问题讨论】:

如果您在控制台中签入,您可以看到请求将发送到 http:// 协议,而不是 https://,因此出现错误 正如您在代码中看到的,ajax 调用转到https 资源 代码说可以,但控制台为王:i.imgur.com/9jzpgyZ.png 那么,我从哪里开始调试?即使请求来自http,我的服务器也始终配置为重定向到https 嘿@mazedlx,尝试在 laravel 中使用安全中间件并告诉我们结果。见:laracasts.com/discuss/channels/tips/… 【参考方案1】:

解决了。需要为该虚拟主机修改我的 Apache conf。只为主域加载的 SSL 指令,而不是为该子域加载的。

【讨论】:

你修改了什么?

以上是关于使用 Laravel 和 Select2 向 HTTP 提供 HTTPS 的 jQuery AJAX 请求的主要内容,如果未能解决你的问题,请参考以下文章

使用 select2 和 ajax laravel 资源进行多选

Laravel 5.4 刀片和 select2 不工作

如何使用 Laravel 处理 select2 倍数

如何使用 Laravel 将数据加载到 Select2 中

添加 select2 插件以选择选项后。 Laravel Livewire 搜索不起作用

Laravel:如何使用 select2.js 更新多个 Select 选项