首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTTPS ajax请求

HTTPS ajax请求
EN

Stack Overflow用户
提问于 2014-10-07 12:26:21
回答 1查看 1.1K关注 0票数 2

我最近改变了我的网站使用HTTPS。我使用Laravel作为一个php框架。在开始时,我遇到了一个问题,我会得到一个‘Origin.’是不允许的访问-控制-允许-原始。“错误,但通过在我的filters.php中使用以下内容修复了这个错误:

代码语言:javascript
运行
复制
App::before(function($request)
{
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
});

ajax请求是:

代码语言:javascript
运行
复制
    $.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。请求的资源上没有“访问-控制-允许-原产地”标题。因此,“https://website.com”源是不允许访问的。

在此之后,我转而使用这个调用:

代码语言:javascript
运行
复制
$.ajax({
        type: 'GET',
        url: 'https://website.com/media/search/',
        data: { 'q':search_string },
        success: function(d) { }
});

但还是没有运气

EN

回答 1

Stack Overflow用户

发布于 2014-10-07 12:34:36

如果它与CRSF相关,则可以从其中删除AJAX:

代码语言:javascript
运行
复制
Route::filter('csrf', function()
{
    if (!Request::ajax() && Session::token() != Input::get('_token'))
    {
        throw new Illuminate\Session\TokenMismatchException;
    }
});

在开头添加!Request::ajax()规则。还可以将_token添加到数据中。

您还应该查看您的app/config/session.php文件:

代码语言:javascript
运行
复制
'secure' => false,

如果它被设置为true,并且您从http发出AJAX请求,则它可能无法工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26235974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档