Javascript 我并没有从前端点击后端控制器中的api路由。我在做什么?
我得到了这个错误区域。不允许使用js:3243 POST 405方法 这是我的服务api调用Javascript 我并没有从前端点击后端控制器中的api路由。我在做什么?,javascript,c#,.net,angular,controller,Javascript,C#,.net,Angular,Controller,我得到了这个错误区域。不允许使用js:3243 POST 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 de
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
这是我正在发送的formgroup信息
this.optionsForm = new FormGroup({
departments: new FormControl(),
weeks: new FormControl(),
noteBody: new FormControl()
})
我想这是什么,是我命名不正确的东西。抱歉,这是我的第一个.net/angular项目。通常我只是在razor视图和.NETMVC上 尝试将其作为JSON发送
return this.http.post(this.baseUrl + 'api/SlgCorpNotes/Edit', JSON.stringify(message));
并且您的方法主体应该具有以下类型的对象
public void Edit([FromBody]TypeOfObject item)
我手动创建了一个对象。新消息 我还必须放置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))
}
它仍然给我错误区域。js:3243 POST 405方法不允许仍然没有运气:我为正在发送和接收的对象创建了一个模型。它是一个具有一个int、一个datetime和一个字符串的对象。这应该很容易吧?我能够轻松地完成一个get post!尝试查看您的代码this.baseUrl+“api/SlgCorpNotes/Edit”是否创建了正确的URL。在浏览器的“网络”选项卡中,可以看到什么url用于进行API调用您是否已将CORS配置为允许HTTP选项动词?我将检查Steppup和Jonathon,我确定我有CORS,我能够为其他方法进行API调用,直到没有运气为止:我为发送和接收的对象创建了一个模型。它是一个具有一个int、一个datetime和一个字符串的对象。这应该很容易吧?我能够轻松地完成一个get post!