1,场景
可能的场景:跨域请求下,只需要提交数据,同时不刷新页面。
2,实现
只能通过服务器端控制:返回 204 状态码即可。MDN 参考
表示该请求已经成功了,但客户端不需要离开当前页面。
所以可利用 204 状态码,来让 form 表单提交不刷新页面。(form 使用默认 target 属性)
测试举例:
<!-- target需要使用默认值 _self -->
<form action="http://localhost:3001/api/login" method="post">
<input type="text" name="name" />
<input type="password" name="pwd" />
<button>提交</button>
</form>
const Koa = require("koa");
const Router = require("koa-router");
const app = new Koa();
const router = new Router();
router.post("/api/login", (ctx) => {
ctx.body = "hello";
ctx.status = 204;
});
app.use(router.routes());
app.listen(3001);
效果展示:
以上。