javascript - 如何修复 404 错误 Node JS Express POST 请求
问题描述
我正在尝试将以下 html 表单提交到 js 文件:
<form action="/submit-form" method="POST">
<input type="text" name="username">
<button> Click Here Now </button>
</form>
这是我要提交的文件。我试过移动文件夹,更改端口,但似乎没有任何效果。
var express = require('express');
var app = express();
app.listen(80, function(){
console.log("Hello whatsup");
})
app.post('/submit-form', function(req,response){
console.log("All great");
})
这两个文件都在我的 Xampp htdocs 文件夹中,特别是位于包含为这个特定项目制作的文件夹中。它包含 package.json 文件、node_modules 文件夹、js 文件和 html 表单。
解决方案
如果您只是在本地运行表单而没有托管/渲染,那么您需要为其指定 url 以了解如何访问您的本地服务器。
示例 1:
使用您的代码示例,但稍作修改以使用非相对路径
假设您index.html
在您的机器中创建一个文件并通过浏览器打开它,并按照上面的示例使用以下内容
<form action="http://localhost:8080/submit-form" method="POST">
<input type="text" name="username">
<button> Click Here Now </button>
</form>
以上假设您的服务器设置如下,端口为 8080。我所做的只是修改代码中的端口
假设您有一个 server.js 文件,以node server.js
. 注意:这假设您的 node_modules 中已经有 express
var express = require('express');
var app = express();
app.listen(8080, function(){
console.log("Hello whatsup");
})
app.post('/submit-form', function(req,response){
console.log("All great");
})
示例 2:
使用您的代码示例来解释相对路径
如果您将服务器和客户端都托管在同一台服务器中,那么用于 index.html 的 url 与用于服务器的 url 相同。然后你可以使用你拥有的相对路径
<form action="/submit-form" method="POST">
<input type="text" name="username">
<button> Click Here Now </button>
</form>
因为这将寻找您正在渲染的域。假设您正在渲染并最终得到一个域http://awesomeurl.com,然后当您的表单点击 /submit-form 时,它将http://awesomeurl.com/submit-form
使用 POST 请求进行调用。如果您的服务器也托管并使用相同的 url 公开,那么一切都会正常工作。
推荐阅读
- spring-boot - SpringBoot(不是 web 项目)可以在 IDE 中运行,但不能在 JAR 中运行
- javascript - 如何使用/创建动态模板来使用 Angular 8 编译动态组件?
- javascript - 从状态不工作更新输入值
- javascript - 如何使用值作为关键字来调用函数?
- css - 如何将 CSS/SCSS 与 Vue 组件文件一起保存
- java - 连续迭代集合和数组的最佳方法
- powershell - Powershell - 创建几个文件后如何开始操作
- php - 如何使用递归函数在 PHP 中生成包含分层评论回复系统的一维数组?
- jquery - 如何通过 jQuery AJAX 发送多组相互关联的数据属性?
- rest - 获取特定组 id 的用户