Forms 停止&引用;从被添加到URL
我目前有一个Angular 2应用程序,用户可以提交表单来创建新项目。单击submit按钮时,它将调用一个函数,该函数将数据发送到服务器,并在服务器确认数据已成功保存时导航到新页面 我的问题是因为表单提交将表单参数附加到URL。因此,例如,如果我有一个名为Forms 停止&引用;从被添加到URL,forms,http,angular,Forms,Http,Angular,我目前有一个Angular 2应用程序,用户可以提交表单来创建新项目。单击submit按钮时,它将调用一个函数,该函数将数据发送到服务器,并在服务器确认数据已成功保存时导航到新页面 我的问题是因为表单提交将表单参数附加到URL。因此,例如,如果我有一个名为title的输入,提交将我带到路径mytitle,这是title字段的输入,Angular(或任何注入GET参数的内容)将尝试导航到mysite.com/mytitle?title=mytitle,而不仅仅是mysite.com/mytitle
title
的输入,提交将我带到路径mytitle
,这是title
字段的输入,Angular(或任何注入GET参数的内容)将尝试导航到mysite.com/mytitle?title=mytitle
,而不仅仅是mysite.com/mytitle
。即使将[ngModelOptions]=“{standalone:true}”
添加到我的所有输入中,仍然会留下一个问号,后面没有参数
这是一个问题,因为它会导致Angular重新加载应用程序,因为给定的路由与“我的路由定义”中的任何路由都不匹配。有没有办法完全禁用注入URL的GET参数?POST也不起作用,因为我无处发帖,我的下一个URL使用表单本身的数据。我找到了问题的答案,“提交”按钮默认为“提交”类型,因此将其更改为“按钮”类型删除了获取参数注入行为。当使用HTTP
GET
请求(默认)而不是POST
请求提交HTML表单时,客户端web浏览器会将参数添加到URL查询字符串中。如果不希望参数出现在URL中,则需要将表单的方法
属性设置为“post”
,并确保提交表单的URL通过post
而不是GET
期望表单值。这只是基于HTTP的HTML表单提交通常的工作方式,而不是特定于Angular。