Javascript 如何将媒体从文本/普通更改为应用程序/json?

Javascript 如何将媒体从文本/普通更改为应用程序/json?,javascript,c#,api,Javascript,C#,Api,当我从JavaScript向API(asp.net WebApi)发送数据时,返回以下错误:此资源不支持请求实体的媒体类型“text/plain”。我想以JSON格式发送数据 The JavaScript code: let newReservation = { "name" : name, "emai" : email, "phone" : phone, "people" : people, "date" : date, "time" : tim

当我从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;

您需要在
XMLHttpRequest
中设置
Content-Type
标题:

Http.setRequestHeader("Content-Type", "application/json;charset=UTF-8");

您需要在
XMLHttpRequest
中设置
Content-Type
标题:

Http.setRequestHeader("Content-Type", "application/json;charset=UTF-8");

将HTTP请求头设置为
**内容类型:application/json**
。 你必须加上这一行
HTTP.setRequestHeader(“内容类型”、“应用程序/json”)

将HTTP请求头设置为
**内容类型:application/json**
。 你必须加上这一行
HTTP.setRequestHeader(“内容类型”、“应用程序/json”)

添加到您的代码中。

此答案将帮助您添加
内容类型
标题。此答案将帮助您添加
内容类型
标题。