HTML表单不使用正斜杠提交

HTML表单不使用正斜杠提交,html,firefox,Html,Firefox,我当时正在开发一个简单的HTML表单,我不明白为什么下面的代码可以在Chrome上运行,而不能在Firefox上运行 <!DOCTYPE html> <html> <body> <form action="/hello.html" method="get"> <input type="submit" value="Submit"> </form> </body> </html> 过了一会

我当时正在开发一个简单的HTML表单,我不明白为什么下面的代码可以在Chrome上运行,而不能在Firefox上运行

<!DOCTYPE html>
<html>
<body>

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

</body>
</html>

过了一会儿,我发现问题在于动作url中的斜杠。 当表单操作以正斜杠(“/”)开头时,表单不会在firefox中提交。 如果操作标记中没有“/”,按“提交”按钮将导致重定向到
hello.html
页面

对我来说,这种行为很奇怪。我认为在表单标记的action属性中以正斜杠开始(相对)URL是有效的。
您对这种行为有什么解释吗?

下面的示例很有效。我不知道你的代码为什么不工作

<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>

堆栈溢出名称:
电邮:

然而,当我从您的代码中删除
时,它也开始工作。

它在谷歌Chrome中工作,因为Chrome是宽容的(或智能的)。你的实际意思是:

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



/hello.html
有什么区别?

假设文件的URI是
file:///c:/somedir/index.html


/hello.html
hello.html
都解析为
file:///c:/somedir/hello.html
,因为它们引用的是当前目录。

但是
/hello.html
解析为
file:///c:/hello.html
因为根据(第16页)

以单个斜杠字符开头的相对引用称为 绝对路径引用


等待你的网址是什么?地址栏中的那个?它以“file://”开头,后跟绝对路径。您需要做的是,当您使用“no domain”的相对路径时,您需要使用
/
表示法。
<form action="./hello.html" method="get">