Javascript Ajax base64字符串无法成功运行
我每隔几秒钟从画布生成一个base64字符串:Javascript Ajax base64字符串无法成功运行,javascript,php,ajax,canvas,base64,Javascript,Php,Ajax,Canvas,Base64,我每隔几秒钟从画布生成一个base64字符串: function generateImg(start) { startInterval = setInterval(function() { saveBase64StringAjax(canvas.toDataURL()); }, 1000); } function saveBase64StringAjax(imgData) { $.ajaxSetup({ headers: {
function generateImg(start) {
startInterval = setInterval(function() {
saveBase64StringAjax(canvas.toDataURL());
}, 1000);
}
function saveBase64StringAjax(imgData) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: 'postStream',
type: 'post',
data: imgData,
success:function(data) {
console.log(data);
}
});
}
如果我从console.log(canvas.toDataURL())复制数据并将其粘贴到这里,我会得到正确的图像
我通过ajax将数据发送到我的控制器函数:
public function postAjax(Request $request)
{
$data = $request->all();
}
我的ajax中的success方法调用$data,但如果我将其粘贴到这里,则base64string是错误的:它没有显示任何内容
工作base64字符串:
无法工作的base64字符串:
除此之外,我还获得了围绕不工作的Base64字符串生成的脚本:典型的Base64字符串可能如下所示: TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNPBMD1BGFYIHBHC3NPB24GZNJVBSBVDGHLCIBBMLTYWXZLCB3AGLJACBPCYBHIGX1C3QGB2YG DGHLIG1PBMQSIHROYXQGYNKYSBWZXJZZZLCMFUY2UGB2YGZGVSAWDODCBPBIB0AGUGY29UDGLU dwvkigfuzcbpbmrlzmf0awdhymxligdlbmvyyxrpb24gb2yga25vd2xlzgdllblegnlzwrzihro ZSBZAG9YDCB2 ZWHLBWVUY2UGB2YGYW55IGNHCM5HBCBWBGVHC3VYZS4= 注意,由于最后的
=
,服务器将获得一个带有数组键TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz的查询字符串
IHNPBMD1BGFYIHBHC3NPB24GZNJVBSBVDGHLCIBBMLTYWXZLCB3AGLJACBPCYBHIGX1C3QGB2YG
DGHLIG1PBMQSIHROYXQGYNKYSBWZXJZZZLCMFUY2UGB2YGZGVSAWDODCBPBIB0AGUGY29UDGLU
dwvkigfuzcbpbmrlzmf0awdhymxligdlbmvyyxrpb24gb2yga25vd2xlzgdllblegnlzwrzihro
ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4
和一个空值,它会把事情搞砸
这样做:
function saveBase64StringAjax(imgData) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: 'postStream',
type: 'post',
data: { imgData: imgData },
success:function(data) {
console.log(data);
}
});
}
然后,您可以通过以下方式获取此数据:
public function postAjax(Request $request) {
$data = $request->imgData;
}
我建议在客户端上显式地将请求的内容类型设置为
application/image
,并在服务器上读取原始POST数据。数据可以更改,请检查发送的数据字符串。