【问题标题】:Saving HTML 5 Canvas via Ajax ASP.NET通过 Ajax ASP.NET 保存 HTML 5 Canvas
【发布时间】:2018-04-09 07:08:14
【问题描述】:

我正在尝试通过 Ajax 将画布数据沙化到 Web 服务,但出现错误:

500(内部服务器错误)

JavaScript:

var imageData = canvas.toDataURL("image/png");
imageData = imageData.replace('data:image/png;base64,', '');

$.ajax({
    type: "POST",
    url: "WebService.asmx/SendRegistration",
    data: "{ 'imageData':'" + imageData + "'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: AjaxSucceeded
});

网络服务:

[WebMethod(EnableSession = true)]
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
public bool SendRegistration(string imageData)
{
  ....
}

【问题讨论】:

  • 能否请您先确认两个步骤,:1. imageData 变量中有数据 2. 使用虚拟数据点击帖子以确认方法正在接收您的点击。

标签: c# asp.net ajax canvas


【解决方案1】:

data 是字符串时,它必须是查询字符串。不要使用字符串,只需使用一个对象,jQuery 会为您转换它:

data: { imageData: imageData },

如果你真的想自己制作字符串,请使用:

data: "imageData=" + imageData",

记住,它是一个查询字符串,所以格式是x=1&y=2&z=3

【讨论】:

  • 这行不通.. 我需要对数据进行 JSON.stringify 吗
  • 不,你不需要JSON.stringify。编辑您的问题并添加 SendRegistration 的完整代码。
【解决方案2】:

问题已解决,由于文件太大,我不得不添加此代码。

   <scripting>
       <webServices>
           <jsonSerialization maxJsonLength="50000000"/>
       </webServices>
   </scripting>

【讨论】:

    猜你喜欢
    • 2011-11-27
    • 2012-06-03
    • 1970-01-01
    • 2011-11-26
    • 2010-12-22
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多