=====================================================================================
1.json: 服务器有长度限制,express框架默认100k长度数据
长度限制参考:
https://www.cnblogs.com/vipstone/p/4865079.html
https://blog.csdn.net/qq_36060786/article/details/85238836
https://blog.csdn.net/y75475/article/details/86716308
https://www.cnblogs.com/chyingp/p/nodejs-learning-express-body-parser.html
client:
let data = {
a1,
a2,
};
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status >= 200 && xhr.status <= 300 || xhr.status == 304) {
console.log('xxx', xhr.response);
}
} else {
}
}
let requestUrl = "http://xxx.xxx.xxx/xxx";
xhr.open('POST', requestUrl, true);
xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
xhr.send(JSON.stringify(data));
server:
@Post("xxx")
async xxx(@Body() body, @Res() res: Response) {
console.log(body.a1, body.a2);
res.status(HttpStatus.OK).send("ok");
}
=====================================================================================
2.form
client:
let forms = new FormData();
forms.append("a1", xxx);
forms.append('a2', xxx);
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status >= 200 && xhr.status <= 300 || xhr.status == 304) {
console.log('xxx', xhr.response);
}
} else {
}
}
let requestUrl = "http://xxx.xxx.xxx/xxx";
xhr.open('POST', requestUrl, true);
xhr.send(forms);
server:使用multiparty解析,
参考https://www.cnblogs.com/zhensg123/p/11078579.html
https://www.cnblogs.com/web-wjg/p/9244074.html
注意在使用中间件时候:
前端不要执行这句:
oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //formdata数据请求头需设置
否则multiparty会失效。
后端除了利用这multiparty去接收,还可以原生去接收。原生接收需要设置
oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //formdata数据请求头需设置
这时候会出现req.body里面,然后去解析,不过貌似有些麻烦。本文也没有处理。
=====================================================================================
3.form
client同上
server:
@Post("xxx")
@UseInterceptors(FileInterceptor('xxxfile'))
async xxx(@Body() body, @Res() res: Response) {
console.log(body.a1, body.a2);
res.status(HttpStatus.OK).send("ok");
}