HTML表单不使用正斜杠提交
我当时正在开发一个简单的HTML表单,我不明白为什么下面的代码可以在Chrome上运行,而不能在Firefox上运行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> 过了一会
<!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">