Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试将base64图像绘制到画布时出现HTTP错误431_Javascript_Base64_Client Side_Http Error - Fatal编程技术网

Javascript 尝试将base64图像绘制到画布时出现HTTP错误431

Javascript 尝试将base64图像绘制到画布时出现HTTP错误431,javascript,base64,client-side,http-error,Javascript,Base64,Client Side,Http Error,我尝试用客户端JavaScript将图像(base64格式)绘制到画布上。不幸的是,ERR\u CONNECTION\u RESET 431(请求头字段太大)错误总是存在的 我将base64映像作为对节点服务器的异步POST请求的响应。 base64映像的一个示例是: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCA===' 但显然,Muuuch的时间更长了。Chrome开发控制台显示: GET http://localhost

我尝试用客户端JavaScript将图像(base64格式)绘制到画布上。不幸的是,
ERR\u CONNECTION\u RESET 431(请求头字段太大)
错误总是存在的

我将base64映像作为对节点服务器的异步POST请求的响应。 base64映像的一个示例是:

'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCA==='
但显然,Muuuch的时间更长了。Chrome开发控制台显示:

GET http://localhost:3000/'data:image/png;base64,iVBORw0KGgoAA...
net::ERR_CONNECTION_RESET 431 (Request Header Fields Too Large)
Image (async)
(anonymous) @ client.js:59
async function (async)
(anonymous) @ client.js:51
我的代码是:

setInterval(异步()=>{
const post_选项={
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”
},
正文:JSON.stringify(请求)
}
const response=wait fetch('/api',post_选项)
const result=await response.json()
const base64_response=“”+结果['image64']+“”
常量图像=新图像()
image.onload=()=>{
响应\u ctx.drawImage(图像,0,0)
}
image.src=base64\u响应
}, 1000)
其中,
canvas_ctx
是画布的2d上下文,
base64_response
是上述指定格式的图像


我还应该提到,我是JavaScript和Web开发的新手,因为我只为我的一个项目这么做。

image.src
接受一个包含URL的字符串。看起来您试图使用一个包含数据URL的字符串,但是您在该字符串的内容中添加了引号,这使得它包含的URL无效。431错误是由于浏览器试图通过假定URL是站点本地资源的名称,然后从服务器请求它来理解现在已损坏的URL

为了解决这个问题

const base64_response = "'" + result['image64'] + "'"
应该是

const base64_response = result['image64']

我以前试过这个,但实际上它抛出了错误:
net::ERR\u无效\u URL
。URL只是
http://localhost:3000/data:image/png;base64,iVB…
那么,你知道为什么这是无效的吗?好的,我发现了问题:我的后端服务器在base64字符串的末尾没有正确的
=
填充。我只是用一个错误换另一个错误。