使用JS创建用户屏幕的屏幕截图,并通过ajax问题发送到服务器

时间:2018-08-22 20:25:53

标签: javascript jquery ajax get base64

我为我的网站创建了一个支持选项,我也想显示屏幕截图。 我找到了html2canvas库,没关系-效果很好。

我要做的第一件事是准备用户屏幕截图:

$( "#openHelpModal" ).on( "click", function() {

   html2canvas(document.querySelector("body"), {
    onrendered: function (canvas) {

      let pngUrl = canvas.toDataURL();
      $('#screenshoot').text(pngUrl);


    },
  });
   $('#helpModal').modal('show');

});

用户打开模式窗口并提交其他数据(如姓名,电话)后,我想通过ajax将这些数据发送到服务器,如下所示:

$("#help").submit(function(e) {
    e.preventDefault();
    s_name = $('#s_name').val();
    s_phone = $('#s_phone').val();
    s_screenshoot =  encodeURIComponent($('#screenshoot').val());
$.ajax({
           type: "GET",
           url: '/help',
           data: {name:s_name, phone:s_phone, screenshoot: s_screenshoot},
           dataType: "json",
           success: function(data)

           {


            }
           },
                      error: function(data) {
           }
         });
});

但是,当我尝试提交数据时,出现错误: enter image description here

出什么问题了?当我尝试不发送base64图像时,一切都很好...该如何解决我的问题?

1 个答案:

答案 0 :(得分:2)

最好使用POST而不是GET来发送大数据。您很可能会超出GET请求的字符数限制。 您得到的错误没有显示确切的详细信息。这也可能是404错误,如果是这种情况,则可能是您的网络服务未接受所有这些参数,或者您的网址格式不正确。