【发布时间】:2020-02-26 00:28:18
【问题描述】:
当我将数据从 JavaScript 发送到 API (asp.net WebApi) 时,我收到以下错误消息:此资源不支持请求实体的媒体类型“text/plain”。我想以 JSON 格式发送数据。
The JavaScript code:
let newReservation = {
"name" : name,
"emai" : email,
"phone" : phone,
"people" : people,
"date" : date,
"time" : time
}
data = JSON.stringify(newReservation)
reservation = JSON.parse(data)
let Http = new XMLHttpRequest
let url = 'https://localhost:44320/api/reservations'
Http.open('POST', url)
Http.send(reservation)
console.log()
Http.onreadystatechange=(e)=>{
console.log(Http.responseText)
}
The C# code:
Controller:
public IHttpActionResult Post([FromBody]Reservation reservation)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
expressoDbContext.Reservations.Add(reservation);
expressoDbContext.SaveChanges();
return StatusCode(HttpStatusCode.Created);
}
Config:
config.Formatters.Remove(config.Formatters.XmlFormatter);
config.Formatters.JsonFormatter.SerializerSettings.Formatting =
Newtonsoft.Json.Formatting.Indented;
【问题讨论】:
-
此答案将帮助您添加
Content-Type标头。 stackoverflow.com/a/37454528/2696422
标签: javascript c# api