如何为 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的主要内容,如果未能解决你的问题,请参考以下文章

如何为 POST 请求创建 json 有效负载?

Symfony:如何为与 Voryx REST Bundle 的一对多关系创建 POST 请求

如何为POST,GET等多个Http请求创建单一逻辑应用程序

Django如何为多个表单创建一个帖子请求。

如何为邮递员 API 请求编写 Laravel PHPUnit 测试

如何为 TypeScript 定义文件导入文件