404响应上的Laravel,Barryvdh / laravel-cors和axios跨源请求阻止错误

Ale*_*der 3 cors laravel single-page-application axios

我正在使用Laravel和laravel-cors软件包作为后端。我正在使用来自不同域的axios发出API请求。基本上,一切正常。

然后,我创建了此新路线以按ID检索单个对象。当具有id的对象存在时,我会收到数据的正常响应。如果没有,我会收到正常的404响应(在“网络”标签中选中),但在控制台中却收到此错误:

跨域请求被阻止:同源策略禁止读取位于http:// ...的远程资源(原因:缺少CORS标头“ Access-Control-Allow-Origin”)。

而且,axios不会将其确定为404错误,而是未知的“网络错误”。我无法在SPA中正确处理此响应,并且我认为这不是预期的行为。

Ale*_*der 6

问题出在barryvdh/laravel-cors软件包的中间件上。在任何其他中间件解决此问题之前应用它,即我必须更改此设置:

'api' => [
    'throttle:60,1',
    'bindings',
    \Barryvdh\Cors\HandleCors::class,
],
Run Code Online (Sandbox Code Playgroud)

对此:

'api' => [
    \Barryvdh\Cors\HandleCors::class,
    'throttle:60,1',
    'bindings',
 ],
Run Code Online (Sandbox Code Playgroud)