我最近将我的网站切换为使用HTTPS。我使用Laravel作为php框架。在开始时,我遇到了一个问题,我会得到一个“Origin-null不被Access-Control-Allow-Origin允许”。错误,但那时我已经固定,通过在我的filters.php使用此:HTTPS ajax请求
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 cannot load http://website.com/media/search?&q=500 . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' https://website.com ' is therefore not allowed access.
这个我已经着手使用这个调用,而不是后:
$.ajax({
type: 'GET',
url: 'https://website.com/media/search/',
data: { 'q':search_string },
success: function(d) { }
});
但仍没有运气
你是不是做跨域调用在这里。 'Access-Control-Allow-Origin'不是必需的。 – mithunsatheesh 2014-10-07 12:28:30
请参阅我的编辑,我无法弄清楚如何在ajax调用上强制https。我会在我的电话中放入https:// website/search /',但它仍然会呼叫http – 2014-10-07 12:32:15
http <-> https被视为跨域;使用相同的协议为ajax调用 – 2014-10-07 12:33:14