为什么action =" localhost"在提交时导致表格没有做任何事情?

时间:2017-10-13 08:58:23

标签: javascript html

<form id = "myForm" action="localhost" method="get">
    <input name="liftString" type="text">
    <input type="submit">
</form>

单击提交按钮时,此表单不执行任何操作。我没有被重定向到localhost

如果我将action属性更改为"/localhost",则会在本地运行表单时尝试将我带到file:///localhost?liftString=d

如果我将action更改为"http://localhost",则正确地将我带到http://localhost/?liftString=f

发布的表单示例中发生了什么?为什么单击提交时表单不执行任何操作?

澄清:我了解action="/localhost"action="https://localhost"时的情况。我不明白的是为什么当我action="localhost"时没有发生。

1 个答案:

答案 0 :(得分:4)

不以方案(例如http://)或方案相对指标(//)开头的网址与当前网址相关(除非被<base>覆盖

因此,浏览器获取当前页面的URL,在其中的最后一个/之后删除所有内容,附加相对URL(localhost),然后在此之后添加查询字符串。

由于您使用file://方案来查看页面,因此表单将提交到您的计算机上没有HTTP服务器的文件来处理表单数据。由于文件localhost不存在,浏览器只会忽略表单提交请求。