簡體   English   中英

如何將媒體從 text/plain 更改為 application/json?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM