GET请求

时间:2017-07-31 06:41:21

标签: html node.js request get-request

我有一个代码,我试图通过使用get请求从下拉菜单中获取一些值。但是,当我单击“提交”时,请求对象为空。我确实使用了body解析器和bodyParser.json并在路由之前声明了它们,但是请求对象仍然是空的:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var EventHubClient = require('azure-event-hubs').Client;

const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
console.log('');
};


app.get('/result', function(req, res){
  res.sendFile(__dirname + '/result.html');
});

app.get('/index', function(req,res) {
  res.sendFile(__dirname + '/index.html');
});

app.get('/getJson', function (req, res) {
    console.log(req.body);
});

http.listen(3000, function(){
console.log('listening on *:3000');
});

这是index.html文件:

<form id="tableForm" action="/getJson" method="get">
    <select class="selectpicker" data-style="btn-info" name="selectpicker">
        <optgroup label="Select Table">
            <option name="" value="0">Select table</option>
            <option name="table1" value="1">Table 1</option>
            <option name="table2" value="2">Table 2</option>
            <option name="table3" value="3">Table 3</option>
        </optgroup>
    </select>
    <input type="submit" />
</form>

3 个答案:

答案 0 :(得分:0)

在index.html

中尝试使用表单中的post方法

答案 1 :(得分:0)

首先,您需要在 index.html 页面中将表单方法更改为 POST

<form id="tableForm" action="/getJson" method="get">
                                               ^^^

现在,由于HTML页面中的方法为 POST ,您还必须在此代码段中进行更改:

app.get('/getJson', function (req, res) {
    console.log(req.body);
});

更改将反映为:

app.post('/getJson', function (req, res) {
    console.log(req.body);
    res.end();    //You must add this line as well.
});

response

答案 2 :(得分:0)

您应该使用POST方法传递数据。

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var EventHubClient = require('azure-event-hubs').Client;

const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
console.log('');
};


app.get('/result', function(req, res){
  res.sendFile(__dirname + '/result.html');
});

app.get('/index', function(req,res) {
  res.sendFile(__dirname + '/index.html');
});

app.post('/getJson', function (req, res) {
    console.log(req.body);
});

http.listen(3000, function(){
console.log('listening on *:3000');
});

的index.html

<form id="tableForm" action="/getJson" method="post">
    <select class="selectpicker" data-style="btn-info" name="selectpicker">
        <optgroup label="Select Table">
            <option name="" value="0">Select table</option>
            <option name="table1" value="1">Table 1</option>
            <option name="table2" value="2">Table 2</option>
            <option name="table3" value="3">Table 3</option>
        </optgroup>
    </select>
    <input type="submit" />
</form>