首页 > 解决方案 > 为什么 $post 不起作用但 $ajax 在 asp.net web api 控制器上起作用?

问题描述

我有兴趣知道为什么$.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)
    }
})

但是这个不起作用, courseAttended 数组在控制器处是空的。

$.post(url, JSON.stringify(courseAttended), function (response) {
    console.log(response)
},"json")

标签: jqueryajaxasp.net-mvcasp.net-web-api

解决方案


您不必在 $.post 中对对象进行字符串化

 $.post(url, courseAttended, function (response) {
        console.log(response)
    },"json")

推荐阅读