我想知道为什么$.ajax()请求可以工作,但是$.post()仅在控制器上返回一个空数组。
控制器
[Route("api/actuary/{actuaryId:long}/documents/")]
[HttpPost]
public async Task<IHttpActionResult> uploadCourseTrainingProofAsync(List<CourseModel> courseAttended)
{
//code .....
}
此请求有效
$.ajax({
url: url,
cache: false,
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(courseAttended),
dataType: "json",
success: function (data) {
console.log(data)
}
})
但是此命令不起作用,controller中的courseAttended数组为空。
$.post(url, JSON.stringify(courseAttended), function (response) {
console.log(response)
},"json")
答案 0 :(得分:0)
LinkedList
使用默认的$.post()
,但是您在contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
方法中将contentType: 'application/json; charset=utf-8',
与字符串化数据一起使用。
例如,如果要使用$.ajax()
,则需要使用集合索引器生成数据以匹配$.post()
参数,例如
List<CourseModel>
答案 1 :(得分:0)
您不必在$ .post中将对象字符串化
$.post(url, courseAttended, function (response) {
console.log(response)
},"json")