2016-02-11 44 views
1

我正在開發一個簡單的HTML表單,我無法弄清楚爲什麼下面的代碼在Chrome上工作,而不是在Firefox中。HTML表單不提交正斜槓

<!DOCTYPE html> 
<html> 
<body> 

<form action="/hello.html" method="get"> 
    <input type="submit" value="Submit"> 
</form> 

</body> 
</html> 

過了一段時間,我發現問題是動作url中的斜線。 表單操作以正斜槓('/')開始時,表單不會在Firefox中提交。 如果操作標籤中沒有「/」,則按下「提交」按鈕會導致重定向到hello.html頁面。

對我來說這種行爲很奇怪。我認爲用正斜槓在form標籤的action屬性中啓動(相對)URL是有效的。 你對這種行爲有一些解釋嗎?

+1

等待。什麼是你的網址?地址欄中的那個? –

+0

它以'file:///'開頭,後面跟着絕對路徑。 – nnunes10

+0

你需要做的是,當你使用「no domain」的相對路徑時,你需要使用'。/'表示法。 –

回答

0

以下示例有效。我不知道爲什麼你的代碼不起作用。

<html> 
<body> 
    <form action="/my-handling-form-page" method="post"> 
     <div> 
      <label for="name">StackOverflow name:</label> 
      <input type="text" id="name" /> 
     </div> 
      <label for="mail">Email:</label> 
      <input type="email" id="mail" /> 

     </div> 
    </form> 
</body> 
</html> 

然而,當我從你的代碼中刪除<!DOCTYPE html>,它開始工作了。

1

它可以在谷歌瀏覽器中使用,因爲Chrome是寬容(或智能)的。你實際上意味着要麼是:

<form action="hello.html" method="get"> 

<form action="./hello.html" method="get"> 


有什麼區別,以/hello.html

讓我們假設你的文件的URI是file:///c:/somedir/index.html

./hello.htmlhello.html雙方決心file:///c:/somedir/hello.html因爲它們指的是當前目錄。

但是/hello.html解析爲file:///c:/hello.html因爲根據http://www.ietf.org/rfc/rfc2396.txt(第16頁)

與單個斜槓字符開始的相對參考被稱爲 的絕對路徑參考...