簡體   English   中英

我沒有從 angular 前端到達后端 controller 中的 api 路由。 我在做什么不正確?

[英]I am not hitting my api route in backend controller from angular frontend. What am I doing incorrect?

我收到此錯誤 zone.js:3243 POST https://localhost:44424/api/SlgCorpNotes/Edit 405(方法不允許)

這是我的服務 api 電話

  updateMessage(message: any) {
    console.log("at service")
    console.log(message)
    return this.http.post(this.baseUrl + 'api/SlgCorpNotes/Edit', message)
  }

當我 console.log 消息時,我收到了這個。

Object
departments: 4
noteBody: "asdf"
weeks: SLGTime {year: 2020, week: 12, quarter: 1, weekEnding: "2020-01-18T00:00:00", lyweekEnding: "2019-01-19T00:00:00"}
__proto__: Object

所以我知道我正在向后端的 .net controller 發送信息。 這是我的 controller 方法。 這可能沒有設置為正確接收 angular 信息嗎?

[HttpPost]
[Route("api/SlgCorpNotes/Edit")]
public void Edit([FromBody]object item)
{

    _SLGContext.Entry(item).State = EntityState.Modified;
    _SLGContext.SaveChanges();
}

更多可能有用的信息。 這是我的命名空間和路線的名稱

namespace mocHub2.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class SlgCorpNotesController : Controller

這是我要發送的表單組信息。

this.optionsForm = new FormGroup({
  departments: new FormControl(),
  weeks: new FormControl(),
  noteBody: new FormControl()
})

我認為它是什么,是我沒有正確命名某些東西。 抱歉,這是我的第一個 .net/angular 項目。 通常我只是在 razor 視圖和 .net mvc 上!

嘗試將其作為 JSON 發送,

return this.http.post(this.baseUrl + 'api/SlgCorpNotes/Edit', JSON.stringify(message));

並且您的方法主體應該具有 object 類型

public void Edit([FromBody]TypeOfObject item)

我手動創建了一個 object。 新消息。

我還不得不把 HttpHeaders

const headers = new HttpHeaders()
  .set('Content-Type', 'application/json;charset=UTF-8')

let options = { headers: headers };

這是更新的方法。

updateMessage(message: any) {
    console.log("at service")
    console.log(message)
    //var newMessage = new CorpNotes(message['departments'], message['noteBody'], message['weeks'].weekEnding)
    //console.log(newMessage)
    //console.log(JSON.stringify(newMessage))
    var newMessage = {
      "Departments": message["departments"],
      "Note": message["noteBody"],
      "WeekEnding": message["weeks"].weekEnding
    }
    console.log(newMessage)
    const headers = new HttpHeaders()
      .set('Content-Type', 'application/json;charset=UTF-8')

    let options = { headers: headers };

    return this.http.post(this.baseUrl + 'api/SlgCorpNotes/Edit',newMessage, options);
    //return this.http.post(this.baseUrl + 'api/SlgCorpNotes/Edit', JSON.stringify(newMessage))


  }

暫無
暫無

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

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