Javascript 将图像从html画布发送到python不工作

Javascript 将图像从html画布发送到python不工作,javascript,python,html,flask,html5-canvas,Javascript,Python,Html,Flask,Html5 Canvas,我正在尝试用html和js制作一个flask应用程序。它从网络摄像头获取图像,存储在html画布中,然后将画布转换为数据url,并通过ajax将其发送到flask。然后我使用base64对数据进行解码,并使用cv2 imdecode读取数据 我遇到的问题是图像的python代码根本没有执行。我的网页加载,一切正常,但当我拍摄照片时,什么也没发生 还有一件事是,当在flask中呈现html时,JS的console.log函数不起作用,因此我不知道我的JS代码是否有问题 你能看看我的html和pyt

我正在尝试用html和js制作一个flask应用程序。它从网络摄像头获取图像,存储在html画布中,然后将画布转换为数据url,并通过ajax将其发送到flask。然后我使用base64对数据进行解码,并使用cv2 imdecode读取数据

我遇到的问题是图像的python代码根本没有执行。我的网页加载,一切正常,但当我拍摄照片时,什么也没发生

还有一件事是,当在flask中呈现html时,JS的
console.log
函数不起作用,因此我不知道我的JS代码是否有问题

你能看看我的html和python代码来告诉我哪里出了问题吗?我确信应该在ajax的url上调用的python函数没有被调用

这是我发送ajax的js:

//按下html按钮时调用的函数
函数takePic(){
ctx.drawImage(video,0,0,canvas.width,canvas.height);//video是html中的视频元素,它从网络摄像头接收实时数据
var imgURL=canvas.toDataURL();
console.log(imgURL);
$.ajax({
类型:“POST”,
url:“http://url/take_pic“,//我对此url有疑问,不确定是否必须在“/take_pic”之前出现特定内容”
资料来源:imgURL,
成功:功能(数据){
if(data.success){
警报('您的文件已成功上载!');
}否则{
警报('上载文件时出错!');
}
},
错误:函数(数据){
警报('上载文件时出错!');
}
}).done(函数(){
控制台日志(“已发送”);
});
}
我对ajax中的url参数有疑问,我认为在这之前必须有一些特定的内容,而不仅仅是
https://url“

这是我的python:

from flask import Flask,render_template,request
import numpy as np
import cv2
import re
import base64

import io

app = Flask(__name__,template_folder="flask templates")

@app.route('/')
def index():
   return render_template('live webcam and capture.html')

@app.route('/take_pic',methods=["POST"])
def disp_pic():
    data = request.data
    encoded_data = data.split(',')[1]
    nparr = np.fromstring(encoded_data.decode('base64'), np.uint8)
    img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
    cv2.imshow(img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

if __name__ == '__main__':
   app.run(debug = True)

我刚刚创建了新的python和html文件,并编写了类似的代码,现在它可以正常工作了。不知道错误的确切原因,但两个代码是相同的。

是的,URL应该是
http://localhost:5000/take_pic
Flask中的任何内容都不能禁用控制台。你确定你的电脑正在进入
控制台.log
行吗?是否存在从浏览器发送的AJAX网络请求?您可以尝试使用浏览器的调试器查看您的代码是否正在实际执行。@barro32:不,URL可以是相对的,只有一个路径就足够了。但是Flask默认在
localhost:5000
上运行,对吗?他们试图
发布
http://url/take_pic
从JS@Shantanu当你说你的网页加载时,你打算在浏览器中使用什么URL?你能提供更多信息吗?