【发布时间】:2014-12-01 21:04:35
【问题描述】:
我最近将我的网站切换为使用 HTTPS。我使用 Laravel 作为 php 框架。一开始我遇到了一个问题,我会得到“Access-Control-Allow-Origin 不允许 Origin null”。错误,但后来我通过在我的 filters.php 中使用它来修复它:
App::before(function($request)
{
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
});
是ajax请求:
$.ajax({
type: 'GET',
url: '/media/search/',
data: { 'q':search_string },
success: function(d) { }
});
现在,我得到的不是跨域错误,而是重定向到我的登录页面,而不是应该加载的内容。我认为这与 Laravel 的 CSRF 令牌实现有关,但我不确定将令牌添加到请求或如何修复它应该采取的路线。有人有什么建议吗?
编辑:
如果我的 filter.php 中没有这些标头函数,我会收到此错误:
XMLHttpRequest 无法加载 http://website.com/media/search?&q=500。不 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“https://website.com” 访问。
在此之后,我继续使用此调用:
$.ajax({
type: 'GET',
url: 'https://website.com/media/search/',
data: { 'q':search_string },
success: function(d) { }
});
但仍然没有运气
【问题讨论】:
-
您不是在此处进行跨域调用。
Access-Control-Allow-Origin不是必需的。 -
请看我的编辑,我不知道如何在 ajax 调用上强制 https。我会在我的电话中输入website/search',但它仍然会调用http
-
http https被认为是跨域的;对 ajax 调用使用相同的协议
-
你能再贴一些代码吗?它在您的代码中将您重定向到哪里?
标签: php ajax laravel laravel-4 laravel-routing