C# 执行从Ajax到Web API的HTTP POST的空参数
我已经阅读了几篇关于这个的StackOverflow文章,并多次更正了我的代码 但是我不能让我的webAPI post方法工作。我正在尝试接收post参数 但它总是空的 我试图做的是接收一个base64字符串,它表示一个 用户单击按钮时使用jquery创建:C# 执行从Ajax到Web API的HTTP POST的空参数,c#,jquery,ajax,post,asp.net-web-api,C#,Jquery,Ajax,Post,Asp.net Web Api,我已经阅读了几篇关于这个的StackOverflow文章,并多次更正了我的代码 但是我不能让我的webAPI post方法工作。我正在尝试接收post参数 但它总是空的 我试图做的是接收一个base64字符串,它表示一个 用户单击按钮时使用jquery创建: function MakePhoto(ctrl) { html2canvas(ctrl, { onrendered: function (canvas) { var canvasData
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上收到的标题:
“方法:邮寄
RequestUri:'http://myhost/RestFulApi/api/webinfo“
内容:System.Net.Http.StreamContent
用户代理:Chrome/27.0.1453.94
内容长度:42226
内容类型:application/x-www-form-urlencoded;charset=UTF-8}
我希望你能帮助我
谢谢好的,我在研究了几个小时后发现了问题。我必须使用以下命令将数据参数传递给ajax函数:
“=”+canvasdata,不带参数名:
jQuery.ajax({
url: "../api/webinfo",
type: "POST",
data: "=" + canvasData,
success: function (response) {
alert(response);
},
error: function (response) {
alert(response.responseText);
}
});
canvas.toDataURL()返回什么,您确定它不是空的吗?在ajax请求之前插入一个console.log(canvasData),浏览器控制台中记录了什么?我想您可能需要在ajax调用中添加
数据类型:“json”
。我添加了数据类型:“json”,但它仍然不起作用:(.@soderslatt是的,我正在用chrome调试,它不是空的。我可以看到base64字符串