将发布请求发送到NodeJS的表单在本地工作,但不能在服务器上工作

时间:2020-09-29 19:46:08

标签: javascript html node.js forms express

我用html制作了一个表单,提交后将其数据发送到nodejs进行处理。它在我的本地主机上工作得很好,但是当我将此代码托管在服务器上时,出现以下错误: Not Found 在此服务器上找不到请求的URL /提交。

我具有以下index.html表单:

<form action="http://ip/submit" method="POST">
        <div class="position-item">
          <div class="item">
            <p>What country are you from?</p>
            <select name="country" required>
              <option value="Canada">Canada</option>
              <option value="Mexico">Mexico</option>
            </select>
          </div>
        </div>
        <div class="position-item">
            <div class="item">
              <p>What state/province are you from?</p>
              <select name="state" required>
                <option value="Ontario">Ontario</option>
                <option value="New York">New York</option>
              </select>
            </div>
          </div>
        <div class="position-item">
            <div class="item">
              <p>What town/city are you from?</p>
              <select name="city" required>
                <option value="Toronto">Toronto</option>
                <option value="Mexico City">Mexico City</option>
              </select>
            </div>
          </div>
          <div class="position-item">
            <div class="item">
              <p>What is your native language?</p>
              <select name="language" required>
                <option value="English">English</option>
                <option value="Spanish">Spanish</option>
              </select>
            </div>
          </div>           
       
        <div class="btn-block">
          <button type="submit">Submit</button>
        </div>
      </form>

在我的nodejs代码index.js中:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

//Receive data from form submission
app.use(bodyParser.urlencoded({ extended: true }));
let country, state, city, language = "";
app.post('/submit', (req, res) => {
    country = res.req.body.country;
    state = res.req.body.state;
    city = res.req.body.city;
    language = res.req.body.language;
    console.log(`'${country}','${state}','${city}','${language}'`)
    
    res.redirect("http://ip/success.html")
});

const port = process.env.PORT || 3335;

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

关于为什么发生这种情况的任何想法吗?

0 个答案:

没有答案