【发布时间】:2019-10-29 18:57:18
【问题描述】:
我收到此错误 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 控制器发送信息。这是我的控制器方法。这可能没有设置为正确接收角度信息吗?
[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 项目。通常我只是在剃刀视图和 .net mvc 上!
【问题讨论】:
-
尝试查看您的代码
this.baseUrl + 'api/SlgCorpNotes/Edit'是否创建了正确的 URL。在浏览器的网络选项卡中可以看到使用什么url进行API调用 -
您是否已将 CORS 配置为允许 HTTP OPTIONS 动词?
-
我会检查 StepUp 和 Jonathon,我确定我有 Cors,我能够为其他方法进行 api 调用
-
仍然没有运气:(我为正在发送和接收的对象创建了一个模型。它是一个具有一个 int、一个日期时间和一个字符串的对象。这应该很容易吧?我能够轻松发帖!
标签: javascript c# .net angular controller