在我的ANGLE/Express.js应用程序中,我的api.service.ts文件中有一个POST方法:

  post(data: any, endpointUrl: string): Observable<T> {
    console.log("REACHED POST METHOD")
    return this.http.post<T>(`${this.apiUrl}/${endpointUrl}`, JSON.stringify(data), this.httpOptions)
  }

它向我的index.js文件中的路由处理程序发送POST请求.以下是index.js份报告的内容:

  import express from 'express';
  import bodyParser from 'body-parser';
  import cors from 'cors';

  const app = express();
  const port = 3000;

  app.use(cors());
  app.use(bodyParser.json());

  app.post('/submit', (req, res) => {
    console.log("REACHED ROUTE HANDLER")
  });

  app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
  });

按钮触发此API调用.POST方法和路由处理程序最初都按其应有的方式工作,但是,在第十次按下按钮后,POST方法仍然运行,但不调用路由处理程序.

我可以呼叫端点的次数是否有内在限制?出于调试目的,我极大地简化了POST方法和路由处理程序,并try 实现try/Catch来捕获可能的错误,但无济于事.我还在POST方法返回语句中记录了每个参数,以确保没有任何未定义的项.

推荐答案

在服务器上,路由处理程序从未真正完成响应,因此它挂起,浏览器限制进一步的请求.

因此,您实际上需要end个响应,例如:

app.post('/submit', (req, res) => {
    console.log("REACHED ROUTE HANDLER");

    // end the request
    res.json(null);
    // or maybe better send something meaningful
    // res.json({success:true, message:'ok'});
});

请参阅:

应对方法

(...)如果这些方法都不是从路由处理程序调用的,则客户端 请求将被搁置

https://expressjs.com/en/guide/routing.html#response-methods

Javascript相关问答推荐

使用json文件字符串来enum显示类型字符串无法按照计算的enum成员值的要求分配给类型号

if/else JavaScript中的条件行为

如何在Angular中插入动态组件

Promise Chain中的第二个useState不更新

从Node JS将对象数组中的数据插入Postgres表

如何从隐藏/显示中删除其中一个点击?

Regex结果包含额外的match/group,只带一个返回

VUE 3捕获错误并呈现另一个组件

更新动态数据中对象或数组中的所有值字符串

如何 for each 输入动态设置输入变更值

为什么云存储中的文件不能公开使用?

使用类型:assets资源 /资源&时,webpack的配置对象&无效

将多个文本框中的输出合并到一个文本框中

React:防止useContext重新渲染整个应用程序或在组件之间共享数据而不重新渲染所有组件

在GraphQL解析器中修改上下文值

如何在FiRestore中的事务中使用getCountFromServer

我怎样才能点击一个元素,并获得一个与 puppeteer 师导航页面的URL?

对不同目录中的Angular material 表列进行排序

我们是否可以在reactjs中创建多个同名的路由

JS/css:将数字输入的S函数和可调整大小的元素S函数绑定在一起