使用 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 资源进行多选