2016-08-01 48 views
2

我現在有一個角2個應用程序,用戶可以提交表單創建一個新的項目。當點擊提交按鈕,它調用的數據發送到服務器,在服務器確認數據已經成功保存導航到一個新頁面的功能。停止「?」被添加到URL

我的問題就來了,因爲表單提交追加的形式參數的URL。例如,如果我有一個名爲title的輸入,並且提交將我帶到title字段的輸入mytitle,Angular(或任何注入GET參數)將嘗試導航到mysite.com/mytitle?title=mytitle而不是mysite.com/mytitle。即使將[ngModelOptions]="{standalone: true}"添加到我的所有輸入中,仍然會留下一個沒有參數的問號。

這是一個問題,因爲它會導致角度來重新加載應用程序,因爲給定的路線不符合我的路由定義的任何路由。有沒有一種方法可以禁用被完全注入URL的GET參數? POST不起作用,因爲我沒有地方發佈,我的下一個URL使用表單本身的數據。

回答

3

我找到了我的問題的答案,「提交」按鈕默認爲「提交」類型,因此將其更改爲鍵入「按鈕」刪除了GET參數注入行爲。

+0

當使用HTTP GET請求(默認)而不是POST請求提交HTML表單時,客戶端Web瀏覽器將參數添加到URL查詢字符串中。如果您不希望參數出現在URL中,您需要將表單的'method'屬性設置爲''post'',並確保您提交表單的URL通過'POST期待表單值'而不是'GET'。這只是基於HTTP的HTML表單提交工作的一般方式,這不是特定於Angular的。 –