laravel会自动向/api/…发出请求。。。XMLHttpRequest

laravel会自动向/api/…发出请求。。。XMLHttpRequest,laravel,api,xmlhttprequest,Laravel,Api,Xmlhttprequest,为了获得json响应,我需要发送一个包含所有请求的XMLHttpRequest头 是否有可能将此作为所有api路由的默认行为 编辑: 当请求失败时(例如,请求验证错误),laravel会自动重定向到主路由 然而,当我用:XMLHttpRequest头定义X-request-With时,我收到一个json响应,告诉我出了什么问题 由于/api下的所有端点都是特定于json的,因此我希望在不必定义标头的情况下默认此行为。您可以使用“before”中间件,使用中间件将X-request-with标头注

为了获得json响应,我需要发送一个包含所有请求的XMLHttpRequest头

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

编辑:

当请求失败时(例如,请求验证错误),laravel会自动重定向到主路由

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

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

您可以使用“before”中间件,使用中间件将
X-request-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' => [
    'throttle:60,1',
    'bindings',
    \App\Http\Middleware\ForceXmlHttpRequest::class,
],
将中间件应用于
api
中间件组。编辑app/Http/Kernel.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' => [
    'throttle:60,1',
    'bindings',
    \App\Http\Middleware\ForceXmlHttpRequest::class,
],
当然,这会剥夺请求者的控制权。就框架而言,向
api
中间件组发出的每一个请求都将被视为ajax请求,请求者将没有其他的说法。只是要记住一些事情

注意:未测试。

您可以使用“before”中间件完成此操作,使用中间件将
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' => [
    'throttle:60,1',
    'bindings',
    \App\Http\Middleware\ForceXmlHttpRequest::class,
],
将中间件应用于
api
中间件组。编辑app/Http/Kernel.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' => [
    'throttle:60,1',
    'bindings',
    \App\Http\Middleware\ForceXmlHttpRequest::class,
],
当然,这会剥夺请求者的控制权。就框架而言,向
api
中间件组发出的每一个请求都将被视为ajax请求,请求者将没有其他的说法。只是要记住一些事情


注:未经测试。

嘿,克里斯,你想达到什么目标还不太清楚。也许您可以尝试包含一些代码,并在问题中添加更多的内容,以便更多的人能够帮助您?通常,您可以从另一方面着手,并在前端ajax请求上设置默认头。默认情况下,Laravel已经为axios完成了这项工作。嘿,克里斯,还不太清楚你想要达到什么目标。也许您可以尝试包含一些代码,并在问题中添加更多的内容,以便更多的人能够帮助您?通常,您可以从另一方面着手,并在前端ajax请求上设置默认头。默认情况下,Laravel已经为axios完成了这项工作。