如何解决发生错误,使用jquery.post发送发布请求
我有一个名为camera.php的文件,下面是源代码:
camera.php
<div id="video" style="margin: auto;text-align:center;">
<video autoplay id="vid"></video>
</div>
<button id="start" class="btn" onclick="Start()">Start</button>
<button id="stop" class="btn" onclick="Stop()">Stop</button>
<button id="takeshot" class="btn" onclick="TakeShot()">TakeShot</button>
<canvas id="canvas" width="640" height="480"></canvas>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
video = document.getElementById('vid');
function Start() {
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({video : true}).then((stream) => {
video.srcObject = stream;
});
}
else
console.log('ur navigator does not support getUserMedia !!');
}
function Stop() {
if (video.srcObject)
video.srcObject = undefined;
}
function TakeShot() {
if (video.srcObject) {
canvas = document.getElementById('canvas');
gtc = canvas.getContext('2d');
gtc.drawImage(video,0);
imgData = canvas.toDataURL('image/png');
//gtc.clearRect(0,canvas.width,canvas.height);
pb = document.getElementById('pb').value;
pub(imgData,pb);
}
else
console.log('you need to use Webcam to take a shot');
}
function pub(img,pb) {
// using jquery.post() to send request
$.post('https://xxxxxx.com/camera/save',{'img' : img,'pub' : pb,'stick' : stickSelectd},(result) => {
obj = JSON.parse(result);
if (obj.error == true) {
document.getElementById('msg').innerHTML = obj.msg;
}
else
document.getElementById('msg').innerHTML = 'Publication has been added';
}).done(() => {
alert('request is done');
}).fail(() => {
alert('request is fail');
});
// using jquery.ajax() to send post request
$.ajax({
url : 'https://xxxxxx.com/camera/save',method : 'POST',data : {
'img' : img,'stick' : stickSelectd
},headers : "Content-type : image/png",Success : (result) => {
alert(result);
},err : () => {
alert('error');
}
});
}
</script>
.htaccess 我知道允许起源的“ *”存在太多风险,但我仅将其用于测试。
Header Set Access-Control-Allow-Origin "*"
总是通过$ .post()警报“请求失败”发送请求,有时从服务器接收到请求并保存图像,但模因响应却变了(“请求失败”)。
我的代码中没有问题,或者我想念标头之类的东西.. ?? 并感谢您的帮助
解决方法
现在可以与ajax()一起使用,我将pub函数更改为:
function pub(img,pb) {
$.ajax({
url : 'https://xxxxxxxx.com/camera/save',method : 'POST',data : {
'img' : img,'pub' : pb,'stick' : stickSelectd
},headers : "Content-type : image/png"
}).done((result) => {
obj = JSON.parse(result);
if (obj.error == true) {
document.getElementById('msg').innerHTML = obj.msg;
}
else
document.getElementById('msg').innerHTML = 'Publication has been added';
}).fail(() => {
document.getElementById('msg').innerHTML = 'something wrong !! try again';
})
}
我不知道为什么旧语法不起作用,我认为还好吗?!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。