C# Angular8应用程序http错误405页面刷新

C# Angular8应用程序http错误405页面刷新,c#,angular,typescript,http,post,C#,Angular,Typescript,Http,Post,我正在Visual Studio中使用Angular8和.NET Core 3.0开发一个应用程序。我有一个页面的形式,这是没有任何问题的工作。但是,当我在该页面上按F5时,我得到以下错误 加载资源失败:服务器响应状态为405 (方法不允许)[ 这是component类中的submit函数 onSubmit() { if (this.registerForm.invalid) { return; } let post: NotificationsInt

我正在Visual Studio中使用Angular8和.NET Core 3.0开发一个应用程序。我有一个页面的形式,这是没有任何问题的工作。但是,当我在该页面上按F5时,我得到以下错误

加载资源失败:服务器响应状态为405 (方法不允许)[

这是component类中的submit函数

  onSubmit() {

    if (this.registerForm.invalid) {
      return;
    }

    let post: NotificationsInterface = {
      email: this.registerForm.value.email,
      subject: this.registerForm.value.subject,
      text: this.registerForm.value.text,
    };

    this.http.post("Notifications", post).subscribe(result => {
      console.error("ok");

    }, error => console.error("error"));

  }
这是C语言中的通知类#

这是C语言中的控制器#

当我在C#中注释控制器部分时,错误消失了,但无法接收数据。避免此类错误的最佳做法是什么? 此错误仅发生在url“”中 致以最良好的祝愿


更新:我添加了控制器的完整代码和带有指定错误的url。

尝试使用哈希定位策略

RouterModule.forRoot(routes, {useHash: true})

尝试使用哈希定位策略

RouterModule.forRoot(routes, {useHash: true})

您可以通过在控制器中创建具有相同端点的get route来调试此问题

当您在控制器中有路由
localhost:51871/notifications
时,当您刷新Angular应用程序时,服务器解析路由并将您指向控制器,但到目前为止,还没有Get方法(当您刷新时,浏览器会发送Get请求),因此它会给您错误信息

我想要么采用散列定位策略,要么尝试改变角度路由,或者如果url路径中有api,那么您所能做的就是您的后端api url应该工作


localhost:51871/api/notifications
一样,有助于对调用的api进行排序

您可以通过在控制器中创建具有相同端点的获取路由来调试此问题

当您在控制器中有路由
localhost:51871/notifications
时,当您刷新Angular应用程序时,服务器解析路由并将您指向控制器,但到目前为止,还没有Get方法(当您刷新时,浏览器会发送Get请求),因此它会给您错误信息

我想要么采用散列定位策略,要么尝试改变角度路由,或者如果url路径中有api,那么您所能做的就是您的后端api url应该工作


localhost:51871/api/notifications
一样,有助于对api进行排序的应用程序被调用

angular应用程序和c#应用程序的url是什么?(通常域指向angular应用程序,如localhost/xyz、localhost/abc和一个前缀端点,如localhost/api/MyAPI,因此我们不会点击/刷新仅包含指向该url的angular的api的url,不会通过浏览器刷新,其余所有其他端点都重定向到angular,因此不会出现任何错误。@谢谢谢谢你的回复!我用更详细的解释更新了我的问题,简而言之,url是“”,我添加了完整的控制器逻辑。问候。你的angular url是localhost:51871/通知,后端Api url也是:localhost:51871/通知:两者都是相同的?angular应用程序和c#应用程序的url是什么?(通常域指向angular应用程序,如localhost/xyz、localhost/abc和一个前缀端点,如localhost/api/MyAPI,因此我们不会点击/刷新仅包含指向该url的angular的api的url,不会通过浏览器刷新,其余所有其他端点都重定向到angular,因此不会出现任何错误。@谢谢感谢您的回复!我已经用更详细的解释更新了我的问题,简言之,url为“”我已经添加了完整的控制器逻辑。祝您好运。您的角度url是localhost:51871/通知,后端Api url也是:localhost:51871/通知:两者都是相同的?您好,您的解决方案也可以工作。但是您提供的答案更详细,解释得更清楚,这可以帮助其他开发人员更好地理解如何继续滚轮工作。您好,您的解决方案也工作了。但是您提供的答案更详细,解释得也更清楚,这可以帮助其他开发人员更好地了解控制器的工作原理。
RouterModule.forRoot(routes, {useHash: true})