C# 将base64映像从视图发送到ASP.NET控制器

C# 将base64映像从视图发送到ASP.NET控制器,c#,jquery,asp.net-mvc,asp.net-core,C#,Jquery,Asp.net Mvc,Asp.net Core,我正在尝试将base64映像从视图发送到控制器 我将base64存储在一个输入中,得到的结果如下(工作正常): 然后在我的视图中,我调用控制器,等待响应: $.get("@Url.Action("CheckFace", "User")", { base64: photoBase64Captured }, function (data) { var result = $.parseJSON(data); if (data != null) { } }); 当我尝试调用控制

我正在尝试将base64映像从视图发送到控制器

我将base64存储在一个输入中,得到的结果如下(工作正常):

然后在我的
视图中
,我调用
控制器
,等待响应:

$.get("@Url.Action("CheckFace", "User")", { base64: photoBase64Captured }, function (data) {

   var result = $.parseJSON(data);

   if (data != null) {

   }
});
当我尝试调用控制器时,在Chrome的控制台中出现以下错误:

Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR
这是
控制器

public async Task<ActionResult> CheckFace(string base64)
{

}
公共异步任务检查面(字符串base64)
{
}
知道为什么会这样吗?base64是否太长,无法发送到
控制器


如果我将其他值发送到控制器,它可以正常工作,因此这不是该方法的问题。

在这种情况下,您需要使用post for。Get请求的图像base64变大

$.post("@Url.Action("CheckFace", "User")", { base64: photoBase64Captured }, function (data) {

   var result = $.parseJSON(data);

   if (data != null) {

   }
});

[HttpPost]
public async Task<ActionResult> CheckFace(string base64)
{

}
$.post(@Url.Action(“CheckFace”,“User”),{base64:photoBase64Captured},函数(数据){
var result=$.parseJSON(数据);
如果(数据!=null){
}
});
[HttpPost]
公共异步任务检查面(字符串base64)
{
}

看起来像是Chrome的问题,您尝试过其他浏览器吗?另一个可能的问题是使用
$.get()
,因为向服务发送(大)数据应该使用
POST
请求来完成,请求体中包含数据。您能提供相应控制器的方法代码吗?@perozzo,检查此链接@apdevelop done@佩罗佐,是
GET
还是
POST
控制器动作?看起来您超出了
GET
request(url长度)的限制。请尝试上面@ray建议的解决方案,该解决方案带有
POST
request。@这是一个GET,因为我不会发布任何内容,只需将控制器上的结果返回到视图中即可。
$.post("@Url.Action("CheckFace", "User")", { base64: photoBase64Captured }, function (data) {

   var result = $.parseJSON(data);

   if (data != null) {

   }
});

[HttpPost]
public async Task<ActionResult> CheckFace(string base64)
{

}