用于 AJAX CORS 的 Laravel CSRF 令牌
Posted
技术标签:
【中文标题】用于 AJAX CORS 的 Laravel CSRF 令牌【英文标题】:Laravel CSRF token for AJAX CORS 【发布时间】:2014-05-01 05:18:31 【问题描述】:如何在 Laravel 中为跨域(子域)请求提供 csrf 令牌。
domain.tld
和 sub.domain.tld
都在同一个 Laravel 框架下运行,
因此我可以在sub.domain.tld
中使用csrf_token()
,我直接将它附加到请求中,但它一直给我tokenMismatchException,我试图关闭csrf 过滤器并转储Input::('_token')
和Session::token()
,它总是不匹配
那么,我如何为另一个域提供令牌?
【问题讨论】:
【参考方案1】:您是否添加了正确的标头以允许 ajax 请求跨域/子域?
如果没有,请在 app/filters.php
中的 App::before
过滤器中添加:
App::before(function($request)
$host = explode( '.', $_SERVER['HTTP_HOST'] );
$subdomain = array_shift( $host );
header('Access-Control-Allow-Origin: http://' . $subdomain . '.yourdomain.com');
);
【讨论】:
以上是关于用于 AJAX CORS 的 Laravel CSRF 令牌的主要内容,如果未能解决你的问题,请参考以下文章
错误:laravel/VueJS ajax 请求中的 CORS
Ajax POST 到 Laravel API 偶尔会被 CORS 阻止