laravel自动向/ api / ... XMLHttpRequest发出请求

时间:2017-10-23 13:05:17

标签: laravel api xmlhttprequest

我需要发送带有所有请求的XMLHttpRequest标头才能获得json响应

是否可以将此作为所有api路由的默认行为?

编辑:

当请求失败时,

laravel会自动重定向到主路由(例如请求验证错误)。

然而,当我定义X-Requested-With: XMLHttpRequest标题时,我收到一个json响应,告诉我出了什么问题。

由于/api下的所有端点都是特定于json的,因此我希望在不必定义标头的情况下默认此行为。

1 个答案:

答案 0 :(得分:1)

你可以用"之前"中间件,使用中间件将X-Requested-With标头注入请求。

创建app/Http/Middleware/ForceXmlHttpRequest.php

namespace App\Http\Middleware;

use Closure;

class ForceXmlHttpRequest
{
    public function handle($request, Closure $next)
    {
        $request->headers->set('X-Requested-With', 'XMLHttpRequest');

        return $next($request);
    }
}

将中间件应用于api中间件组。修改app/Http/Kernel.php

'api' => [
    'throttle:60,1',
    'bindings',
    \App\Http\Middleware\ForceXmlHttpRequest::class,
],

当然,这可以使控制权远离请求者。就框架而言,对api中间件组的每个请求都将被视为ajax请求,并且请求者无法另外说出。请记住一些事情。

注意:未经测试。