如何解决为什么有时候Laravel API会在获取Vue.js时返回404错误
我目前正在申请这些具有特殊意义的内容:
- 后端:Laravel 7 +
- 前端:Vue.js
- 本地开发包:Laragon,已启用本地SSL
我也一直在使用一些基于引导程序的免费模板。
这就是问题所在,每次我从Vue.js端(前端端)发出一些fetch()API请求时,我注意到在100次尝试中,大约有6次返回404。
我的API位于```Route :: prefix('api')```上,我想CORS没问题,等等。
我不知道这是否有什么大不了的,但是我犹豫继续使用这种获取数据的方法,直到我弄清楚请求和获取的实际情况,因为6/100的机会实际上是相当大的考虑到我当前正在构建的应用程序的功能,这让我感到恐惧。
我不知道我的描述是否足够,但是如果不足够,请随时对我吼叫,以便我可以做得更深。
然后...如果你们中的任何人问我已尝试解决此问题,是的,我确实不知道该怎么办。我认为我唯一想做的就是在这里寻找答案,然后得知没人遇到类似的问题。
干杯。
编辑: 案件结案。绝对是因为油门限制。我自己计算一下,当我转到第61个请求时,会抛出404。非常感谢。
编辑: 射击! 还是个问题。而且我注意到节气门问题应该返回429。我的API返回404。我已禁用内核中的油门。但有趣的是,我尝试将其部署在我的VPS上,并且效果很好。问题出在我的本地服务器上还是什么?
解决方法
您正在达到最大的行驶速度。默认的油门限制为每分钟60次尝试。要跟踪油门,请查看响应标题。例如,如果您有如下路线
Route::group(['prefix' => 'api','middleware' => 'throttle'],function () {
Route::get('people',function () {
return Person::all();
});
});
查看响应标题会显示类似的油门信息
HTTP/1.1 200 OK
... other headers here ...
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
请记住,此回复表示:
- A)此请求成功(状态为200)
- B)您可以每分钟尝试60次此路线
- C)这分钟您还剩下59个请求
如果超出速率限制,我们将得到什么答复?
HTTP/1.1 429 Too Many Requests
... other headers here ...
Retry-After: 60
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
自定义throttle
中间件
throttle
中间件接受两个参数,这些参数确定在给定的分钟数内可以进行的最大请求数。例如,让我们指定经过身份验证的用户每分钟可以访问以下路由组60次:
Route::middleware('auth:api','throttle:60,1')->group(function () {
Route::get('/user',function () {
//
});
});
如果您希望允许每分钟向该路线发出60个以上的请求,请更改油门第一参数
Route::middleware('auth:api','throttle:100,function () {
//
});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。