后端返回 success 和 fail
@RequestMapping("addFace")
public String faceAdd(String userName,String base,String password) {
// 去掉base64编码中的图片头信息
String base64 = base.split(",")[1];
try {
//base64转图片
Base64Utils.GenerateImage(base64, "D:\\workspace\\IdeaProjects\\meeting\\temp\\temp.jpg");
} catch (IOException e) {
e.printStackTrace();
}
//获取人脸特征
byte[] face = new MyFaceFeature().extract(new File("D:\\workspace\\IdeaProjects\\meeting\\temp\\temp.jpg"), faceEngine);
if(face == null||loginService.checkUser(userName)!=null) {
return "fail";
}else {
int sum = adminService.countUser();
faceService.faceAdd(new User(sum+1,userName,face, Md5Util.md5(password),1000+sum));
return "success";
}
}
js 是不是因为DOMContentLoaded的原因。求解
//这段代 主要是获取摄像头的视频流并显示在Video 签中
window.addEventListener("DOMContentLoaded", function () {
let canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
video = document.getElementById("video"),
videoObj = {
"video": true
},
errBack = function(error) {
console.log("Video capture error: ", error.code);
alert("不支持");
};
canvas.width = 200;
canvas.height = 150;
let button = document.getElementById("reg");
button.onclick = function(){
context.drawImage(video, 0, 0, 200, 150);
// 把画布的内容转换为base64编码格式的图片
let data = canvas.toDataURL( 'image/png', 1 ); //1表示质量(无损压缩)
let userName = document.getElementById("userName").value;
let password = document.getElementById("password").value;
$.ajax({
url: '${pageContext.request.contextPath}/m_manage/addFace',
cache:false,
type: 'POST',
data: {
base : data,
userName : userName,
password : password
},
dataType: 'json'
,success:function(res){
if (res=="success"){
alert("注册成功!");
}else {
alert("注册失败。");
}
}
});
}
//请求摄像头权限
navigator.mediaDevices.getUserMedia(videoObj)
.then(function(stream){
//成功回调函数,把流给video标签
video.srcObject = stream;
video.play();
})
.catch(errBack);
},false);
请求发送成功。也返回了