Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 停止&引用;从被添加到URL_Forms_Http_Angular - Fatal编程技术网

Forms 停止&引用;从被添加到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

我目前有一个Angular 2应用程序,用户可以提交表单来创建新项目。单击submit按钮时,它将调用一个函数,该函数将数据发送到服务器,并在服务器确认数据已成功保存时导航到新页面

我的问题是因为表单提交将表单参数附加到URL。因此,例如,如果我有一个名为
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。