Ajax base64 字符串不成功

Ajax base64 String does not work in success

我每隔几秒钟从 canvas:

生成一个 base64 字符串
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()) 复制数据并将其粘贴到此处 http://codebeautify.org/base64-to-image-converter 我得到正确的图像。

我正在通过 ajax 将数据发送到我的控制器功能:

public function postAjax(Request $request)
{
    $data = $request->all();
}

我的 ajax 中的成功方法调用了 $data 但 base64string 是错误的,如果我将其粘贴到此处:http://codebeautify.org/base64-to-image-converter 它什么也没显示。

有效的 base64 字符串:http://kopy.io/fjlzp 不起作用的 base64 字符串:http://kopy.io/w1F20

除此之外,我还围绕不起作用的 base 64 字符串生成了这个脚本:http://kopy.io/X7TtO

典型的 Base64 字符串可能如下所示:

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

请注意,由于末尾的 =,服务器将获得一个带有数组键 TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo 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;
}