[英]Fetch: post json data, application/json change to text/plain
[英]How to change media from text/plain to application/json?
當我將數據從 JavaScript 發送到 API (asp.net WebApi) 時,我收到以下錯誤消息:此資源不支持請求實體的媒體類型“文本/純文本”。 我想以 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;
您需要在 XMLHttpRequest 中設置Content-Type
XMLHttpRequest
:
Http.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
將 HTTP 請求 header 設置為**Content-Type: application/json**
。 您必須添加這一行HTTP.setRequestHeader("Content-Type", "application/json");
到你的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.