2017-10-13 41 views
2
<form id = "myForm" action="localhost" method="get"> 
    <input name="liftString" type="text"> 
    <input type="submit"> 
</form> 

单击“提交”按钮时,此表单不起作用。我没有重定向到localhost为什么action =“localhost”会导致在提交时没有做任何事情?

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

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

发布的表单中发生了什么?为什么单击提交时表单无效?

澄清:我明白action="/localhost"action="https://localhost"是怎么回事。我不明白的是为什么没有发生时,我有action="localhost"

+0

由于/ localhost把它带到文件位置我假设它是从文件系统运行而不是通过服务器 –

回答

4

不与一个方案(如http://)或方案相对指示器(//)启动URL是相对于当前URL(除非<base>覆盖。

因此,浏览器需要的URL当前页面的,剥去一切后,它会在最后/,追加相对URL(localhost)然后添加后的查询字符串。

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

+0

好的教学答案 –

相关问题