C# Angular8应用程序http错误405页面刷新
我正在Visual Studio中使用Angular8和.NET Core 3.0开发一个应用程序。我有一个页面的形式,这是没有任何问题的工作。但是,当我在该页面上按F5时,我得到以下错误 加载资源失败:服务器响应状态为405 (方法不允许)[ 这是component类中的submit函数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
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})