如何为 POST 请求调试 TypeScript NS_BINDING_ABORTED
Posted
技术标签:
【中文标题】如何为 POST 请求调试 TypeScript NS_BINDING_ABORTED【英文标题】:How to debug TypeScript NS_BINDING_ABORTED for POST-Requests 【发布时间】:2021-05-14 04:22:07 【问题描述】:我有一个简单的功能,通过 POST-Request 调用我的后端。它使用在项目中随处使用的相同包装函数,只是“获取”并以某种异步/等待方式调用。
body 只是静态的东西,一些 ID 和两个日期。非常简单 - 如果根本没有提供 body 或类似的,包装函数将会失败。
但是请求“总是”(嗯,在大约 100 次重试中成功尝试一两次)失败并出现 NS_BINDING_ABORTED
Google 告诉我该消息意味着我遇到了一些缓存命中并且请求被取消 - 但缓存被禁用,Header-Vars 应该阻止它并且向 URL 添加随机内容不会做任何事情。 (有时 OPTIONS 调用会通过,但 POST 本身仍然失败)
该项目中几乎所有的后期请求都使用完全相同的包装器完成。
有人有什么想法可以让我调试一下吗?
【问题讨论】:
顺便说一句:chrome 也取消了,但首先发送了整个正文,所以我看到请求在我的后端传入 - 虽然请求没有成功,所以这不是特定于浏览器的问题 【参考方案1】:原来我的请求并没有因为缓存命中而被取消,而是因为页面重新加载。
重新加载是由我的 onclick 事件触发后提交的表单引起的,但在我的请求有机会完成之前。
注意:始终在按钮上设置该类型属性
通常仍然不知道如何调试它,但在我的情况下,让浏览器清除它的网络选项卡以及由于 Initiator: document
引起的下一个请求的原因应该是一个线索,这意味着它不是由某些人完成的JS,但通过一些 html 功能。
进一步阅读:
NS_BINDING_ABORTED javascript window.location.replace() MDN Archive - Network Error Codes【讨论】:
以上是关于如何为 POST 请求调试 TypeScript NS_BINDING_ABORTED的主要内容,如果未能解决你的问题,请参考以下文章
Symfony:如何为与 Voryx REST Bundle 的一对多关系创建 POST 请求
如何为POST,GET等多个Http请求创建单一逻辑应用程序