Ajax base64 String无法成功运行

时间:2017-03-30 15:25:17

标签: javascript php ajax canvas base64

我每隔几秒从画布生成一个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

除此之外,我在非工作基础64字符串周围生成此脚本:http://kopy.io/X7TtO

1 个答案:

答案 0 :(得分:1)

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

  

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz   IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg   dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmF​​uY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu   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;
}