Curl 允许 POST 请求,但浏览器不允许

时间:2021-02-06 09:05:02

标签: javascript node.js express post

我正在尝试开发一个允许对文件数据进行 POST 请求的 API,但 POST 请求只能使用 curl curl -X POST --data file= mouse.fa "http://localhost:3000/api/data?file=mouse.fa" 运行。当我在浏览器中尝试 POST 请求时,出现 GET 错误 Cannot GET /api/data。除了 curl 之外,您能否就如何让 POST 请求在浏览器中工作向我提出建议。

router.js

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

fileParser = require("./fileParser")
router.use('./fileParser', fileParser.parse);

// middleware
router.use(function (req, res, next) {
    console.log('Received request');
    next();
});


router.post('/data', function (req, res) {
    //Check file is valid
    if (!req.body.file.toString().endsWith('.fa')) {
        res.status(400).json({ message: "Bad Request" });
    } else {
        fileParser.parse(`./${req.body.file.toString()}`);
        res.json({ message: "File parsed and data submitted.", location: "/data/" });
    }
    
});

server.js

const express = require('express');

// create server
const app = express();
const port = 3000;
app.listen(port, function () {
    console.log(`Server running at ${port}`)
});

// import router
const router = require('./router');
app.use('/api', router)

0 个答案:

没有答案