方法一
json数据需要使用encodeURIComponent进行编码
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
let obj = {
"aa": "aa",
"bb": [],
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcAQMAAABIw03XAAAAAXNSR0IArs4c6QAAAANQTFRF/7+/IWEVXQAAAAxJREFUCNdjYBg8AAAAjAABU9Jk1AAAAABJRU5ErkJggg=="
}
let str = "aa=27&bb=";
str += encodeURIComponent(JSON.stringify(obj));
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(str);
方法二
使用FormData,仅在浏览器使用
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
let obj = {
"aa": "aa",
"bb": [],
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcAQMAAABIw03XAAAAAXNSR0IArs4c6QAAAANQTFRF/7+/IWEVXQAAAAxJREFUCNdjYBg8AAAAjAABU9Jk1AAAAABJRU5ErkJggg=="
}
var formData = new FormData();
formData.append('aa', 27)
formData.append("bb", JSON.stringify(obj));
xhr.send(formData);