koa post总是显示Method Not Allowed (debian firefox)?

//server.js
const Koa = require('koa')
const app = new Koa();
const bodyParser = require('koa-bodyparser');
app.use(bodyParser());

const Router = require('koa-router');
const fs = require('fs');

const router = new Router();
const UserController = require('./server/controller/user.js');
const checkToken = require('./server/token/checkToken.js');
router.get('/user/login', async ctx => {
     ctx.body = JSON.parse(fs.readFileSync( './pass.json'));
     console.log(ctx.body);
 });
router.post('/signin', async (ctx, next) => {
 var
     name = ctx.request.body.name || '',
     password = ctx.request.body.password || '';
 console.log(`signin with name: ${name}, password: ${password}`);
      if (name === 'koa' && password === '12345') {
     ctx.response.body = `<h1>Welcome, ${name}!</h1>`;
 } else {
     ctx.response.body = `<h1>Login failed!</h1>
     <p><a href="/">Try again</a></p>`;
 }
 });

app.use(router.routes()).use(router.allowedMethods());

app.listen(8090, () => {
 console.log('The server is running at http://localhost:' + 8090);
 });

koa:2.52
koa-bodyparse:4.21
koa-router:7.4

访问http://localhost:8090/user/login后,get方法浏览器可以获得回应的json数据,但是http://localhost:8090/signin后,post总是在浏览器显示405 Method Not Allowed.查看浏览器显示请求方法为GET,响应头Allow:POST Connection:keep.alive

麻烦大家帮忙看看可能会是什么问题 感谢

阅读 5k
1 个回答

你应该是直接在服务端访问post请求的吧, 那样是不允许的, 你试试从客户端form的post提交是可以成功的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进