【发布时间】:2013-05-31 01:05:39
【问题描述】:
我已经阅读了几篇关于此的 StackOverflow 帖子,并多次更正了我的代码 但我无法让我的 webAPI 发布方法正常工作。我正在尝试接收 post 参数 但它总是为空。
我想要做的是接收一个代表画布的 base64 字符串 当用户单击按钮时使用 jquery 创建:
function MakePhoto(ctrl) {
html2canvas(ctrl, {
onrendered: function (canvas) {
var canvasData = canvas.toDataURL()
jQuery.ajax({
url: "../api/webinfo",
type: "POST",
data: { imagedata: canvasData },
success: function () {
alert("success");
},
error: function () {
alert("failure");
}
});
}
});
}
我的WebInfoController.cs 看起来像这样:
public void Post([FromBody]string imagedata)
{
}
imagedata参数总是NULL
这是我在 webapi 收到的标头:
"方法:POST,
RequestUri: 'http://myhost/RestFulApi/api/webinfo'内容:System.Net.Http.StreamContent
用户代理:Chrome/27.0.1453.94
内容长度:42226
内容类型:application/x-www-form-urlencoded;字符集=UTF-8}
希望你能帮助我。
谢谢
【问题讨论】:
-
canvas.toDataURL() 返回什么,你确定它不为空吗?在您的 ajax 请求之前插入一个 console.log(canvasData),浏览器控制台中记录了什么?
-
我认为您可能需要将
dataType: "json"添加到您的ajax 调用中。 -
我添加了 dataType: "json" 但它仍然无法正常工作:(。@soderslatt 是的,我正在使用 chrome 进行调试,它不为空。我可以看到 base64 字符串
标签: c# jquery ajax post asp.net-web-api