[FromBody]必须是application/json 否则会报415 不支持的类型
//Forms function FormsPost(data) { //Default Type x-www-form-urlencoding =>Form $.ajax({ url: "/api/AgentAccount/PostForm", type: "post", datatype: "json", data: data, success: function (data) { alert('success'); } }).fail( function (xhr, textstatus, err) { alert('error: ' + err); }); } //[FromBody] Model function ModelPost(data) { $.ajax({ url: "/api/AgentAccount/UserRegister", type: "post", contentType: 'application/json; charset=utf-8', datatype: "json", data: JSON.stringify(data),//jSON.stringfy for Model transmit [FromBody] will be used; success: function (data) { alert('success'); } }).fail( function (xhr,textstatus, err) { alert('error: ' + err); }); } //[FromBody] String function StringPost(data) { data = { "": "sds" }; $.post('/api/AgentAccount/PostString', data); $.ajax({ url: "/api/AgentAccount/PostString", type: "post", contentType: 'application/json; charset=utf-8', datatype: "json", data: data, success: function (data) { alert('success'); } }).fail( function (xhr, textstatus, err) { alert('error: ' + err); }); } //[FromBody] Image function XhrUploadImage() { } //[FromeBody] xhr.Model function XhrPostModel(data) { xhr = new XMLHttpRequest(); xhr.open("POST", "/api/AgentAccount/UserRegister", true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify(data)); xhr.onreadystatechange = function (event) { if (4 == xhr.readyState) { if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) { alert(xhr.responseText); } else { alert('error:' + xhr.status); } } }; }
对应controller action
[HttpPost("PostForm")] public JsonResult PostForm(string FullName) { var data = new { username = "PostString" }; return Json(data); } [HttpPost("UserRegister")] public JsonResult UserRegister([FromBody]AspNetUsers value) { var data = new { username="sf" }; return Json(data); } // POST api/values [HttpPost("PostString")] public JsonResult PostString([FromBody] string value) { var data = new { username = "sf" }; return Json(data); }