javascript - 为什么我的网页在 NodeJS POST 请求后刷新?

标签 javascript node.js express fetch axios

我正在使用 NodeJS 的 Express 框架。当客户端发出 POST 请求时,它会将一些工作推送到 Python 脚本,然后将 JSON 对象返回到客户端网页。

我的问题是每当我的 POST 请求完成时客户端就会刷新。我已经使用 Axios 和 Fetch http 客户端进行了测试。 在发出这样的 POST 请求时如何防止网页刷新?

服务器代码如下所示:

app.post("/data/", function(req, res) { 

    const spawn = require("child_process").spawn;
    const pythonProcess = spawn('python', ["my_script.py"]);

    pythonProcess.stdout.on('data', (data) => {
          let result = data.toString();
          res.send(JSON.stringify(result));
     });
});

然后我从 React 客户端发出请求(使用 Axios,但 Fetch 的行为方式相同):

axios({
  method: 'post',
  url: `http://localhost:3001/videos/?url=${url}`,
  responseType: 'json',
});

客户端网页刷新...

我知道 React 不应该受到指责,因为没有任何东西可以更新应用程序状态。即使我对服务器的响应不执行任何操作,当 POST 完成时,网页仍然会刷新。

此外,我的网页上没有表单元素或类似的内容,并且我的 button 类型为 button 而不是 submit 类型。

我有预感,这与 python 进程本身的调用方式有关,因为如果我只返回一个普通的 JSON 对象而不调用 python 子进程,我的客户端网页会获取数据并且不会刷新。

最佳答案

我明白了。我的 python 进程的一部分是将文件写入 React 的 public 文件夹,这显然会导致 React 热重载。

关于javascript - 为什么我的网页在 NodeJS POST 请求后刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51488646/

相关文章:

ajax - 简单的 AJAX 获取请求是 "pending"

javascript - 视差图像对我不起作用

javascript - 获取字符后的所有字符串(如果有空格)

javascript - 为什么 IE8 错误地提示加载了非安全元素?

node.js - 事件.js :183 throw er;//Unhandled 'error' event

c++ - node.js 内部 : How can I find out where `process.binding(' eval')` gets defined?

javascript - 从日历中删除选定的事件

javascript - 无法调试 Node 子进程(使用 Node native 调试器)

node.js - 处理内部异步调用时函数参数的范围是什么?

session - JWT 和签名 cookie 有什么区别?