在Laravel 5中为非ajax路由设置Request(而不是Response)报头


Set Request (not Response) Headers in Laravel 5 for Non-Ajax Routes

我真的很困惑,这是一个很难完成和/或找到任何相关信息的任务。我猜它一定是非常简单的东西,没有人需要问它(除了我!):-)),所以我希望有人能轻松地为我指出正确的方向…

我需要在我的请求中设置报头-而不是在我的响应中(我已经处理了那部分),而不是Ajax路由(我已经处理了那部分)。我究竟如何在Laravel 5.1的内部应用程序路由中实现这一点?

本质上,我需要附加一个"授权"头到某些请求。(例如

$request->headers->set('Authorization', 'my-authorization-token'); 

)然而,这行代码不起作用。不管我把它放在哪里。它不能从中间件中工作。它不能在routes.php中工作。它不能从我的控制器工作…这根本行不通,就这么简单。(为了清晰起见,"$request"是"Illuminate'Http' request")。

我错过了什么?在发送请求之前,我可以在哪里/如何设置请求头?请帮助!

这里的一些答案可能会给您一个想法,您可以根据请求调整它们:我可以在哪里设置laravel

这看起来也相关:Laravel 5/Lumen请求头?

请求从客户端发送到服务器(即你的Laravel应用程序)。因此,您可以使用Javascript在客户端站点上设置请求标头。

Laravel文档中有一个使用jQuery设置X-CSRF-TOKEN头的例子。

$.ajaxSetup({
        headers: {
            'X-MY-HEADER': 'whateveryouwant
        }
});

使用VueJS,它看起来像这样

Vue.http.headers.common['X-MY-HEADER'] = 'whateveryouwant';

您需要创建一个新的请求对象,然后像这样设置标题:

// e.g., Inside controller method
$request = new 'Illuminate'Http'Request();
$request->setMethod('POST'); // or whatever your request type is
$request->header('Authorization', 'my-authorization-token');