获取:
很难指出原因并提供细节。 简单地说,有一个Angular+Express.js应用程序,MySQL用于数据库,Nginx用于代理服务器,使用Docker将所有内容粘合在一起。
因此,只要使用任何长时间运行的异步任务(例如setTimeout(()=>{},1000
),浏览器中的请求就会获得取消状态。
所以想弄清楚。 它是express.js设置吗? NginX设置? 角度httpclient
?
总而言之,一切都是在引擎盖下进行的。 但是浏览器收到的状态是canceled,这使得无法跟踪操作结果并通知用户操作已经完成。
Nginx日志返回:
nginx_1 | 172.18.0.1 - - [01/Aug/2020:12:49:19 +0000] "PUT /api/tags/update HTTP/1.1" 499 0 "http://localhost:8081/tags" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36
Angular TypeScript代码如下所示:
this.httpClient
.put<Tag>(`/api/tags/${slug}`, data)
.pipe(takeUntil(this.unsubscribe$))
.subscribe();
您可能正在对组件ngondestroy
钩子中可观察到的http调用request.unsubscribe()
。 导致请求被“取消”