簡體   English   中英

Asp.net core api 從 Javascript 得到“415 Unsupported Media Type”錯誤,而不是 Postman

[英]Asp.net core api getting “415 Unsupported Media Type” error from Javascript, not Postman

我已經創建了一個 Asp.Net Core Web 應用程序,並希望實現一個 Web API。

我已經實現了一個功能性的 HttpGet,現在正在嘗試實現一個 HttpPost 功能:

    [HttpPost]
    public object Post([FromBody] object data)
    {            
        return null;
    }

我已經使用 Postman 進行了測試,效果很好。 我在主體中使用 json 對象對其進行了設置(設置為原始和 JSON (application/json))。

我得到了預期的回應。

但是當我嘗試使用 Postman 建議的代碼(或我自己的嘗試)從 javascript 調用它時:

    var settings = {
      "async": true,
      "crossDomain": true,
      "url": "http://localhost:51139/api/data",
      "method": "POST",
      "headers": {
        "content-type": "application/json",
        "cache-control": "no-cache",
        "postman-token": "999ee8ee-4e92-acb8-b7cf-144ffa49e5ee"
      },
      "processData": false,
      "data": "{\"Message\":\"This is body data\"}"
    }

    $.ajax(settings).done(function (response) {
      console.log(response);
    });

我收到“415 不支持的媒體類型”錯誤。

有人看到我哪里出錯了嗎?

我遇到了同樣的問題並嘗試了一百萬種不同的組合( $.ajax$.post等),但最終做的是accepts: "application/json"

{
    type: "post",
    accepts: "application/json",
    url: "http://localhost:51139/api/data",
    contentType : "application/json",
    data: "{\"Message\":\"This is body data\"}"
}

你可以試試這樣的

[HttpPost]
public object Post()
{   
    Object o = Request.Form.First(o => o.Key == "data").Value 
    return null;
}

然后,如果您可以創建該對象的類,則可以使用 JsonConvert 將該對象反序列化為您創建的類對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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