【发布时间】:2021-03-01 13:49:48
【问题描述】:
我注意到除 IE 之外的现代浏览器会在 Jquery 对象中显示虚假路径,这是一种安全保护,可避免服务器通过浏览器访问客户端物理驱动器。
我在这里和那里看到了一些使用 formData 的其他帖子。我确实认为它适用于文件或仅适用于文件。但我遇到的情况需要通过上传到后端的文件传递一些其他信息,例如 ID 和几个字符串值。
我原来的实现是这样的:
Ajax 调用:
var emails = {
RequestId: requestId,
ToEmails: toEmails,
CcEmails: ccEmails,
FileList: fileList
};
$.ajax({
url: '@Url.Action("SendEmails")',
type: 'POST',
data: JSON.stringify(emails),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
}
});
.Net Core MVC 控制器:
[HttpPost]
public bool SendEmails([FromBody]ToCcEmails emails)
{
}
复杂对象类型类:
public class ToCcEmails
{
public int RequestId { get; set; }
public string ToEmails { get; set; }
public string CcEmails { get; set; }
public List<string> FileList { get; set; }
}
我应该对我的 ajax 代码甚至 MVC 操作文件进行哪些更改以使其与 formData 解决方案或任何其他解决方案正常工作?
谢谢。
【问题讨论】:
标签: jquery ajax asp.net-core http-post form-data