Javascript<;脚本>;标记错误

Javascript<;脚本>;标记错误,javascript,Javascript,我今天在工作场所遇到了一个奇怪的问题。在JSP中,我有多个脚本标记,如下所示,其中一个在脚本标记的src中有一个空白。这个JSP在firefox中成功加载,在我输入值并单击submit之后,JSP被提交两次,一次使用post请求,另一次使用get请求。问题是为什么表格要提交两次?如果有人面对过这个问题。请回答 我们知道如何通过在脚本标记中放置一个伪js文件来解决这个问题,但希望了解它背后的真正问题 <script src="file.js" type="text/javascript"/&

我今天在工作场所遇到了一个奇怪的问题。在JSP中,我有多个脚本标记,如下所示,其中一个在脚本标记的src中有一个空白。这个JSP在firefox中成功加载,在我输入值并单击submit之后,JSP被提交两次,一次使用post请求,另一次使用get请求。问题是为什么表格要提交两次?如果有人面对过这个问题。请回答

我们知道如何通过在脚本标记中放置一个伪js文件来解决这个问题,但希望了解它背后的真正问题

<script src="file.js" type="text/javascript"/>
<script src="file1.js" type="text/javascript"/>
<script src="file2.js" type="text/javascript"/>
<script src="file3.js" type="text/javascript"/>
<script src=" " type="text/javascript"/>
<script src="file4.js" type="text/javascript"/>

href
src
属性中,空字符串将被视为相对URI,因此将解析为与当前加载的脚本相同的路径。因此,使用空的src调用
标记(假设空格被JSP修剪),就像说:

<script src="thispage.jsp" type="text/javascript"/>


即使浏览器不能正确地将资源解析为JavaScirpt,服务器仍会将其发送到浏览器。从服务器端看,它看起来就像是对
thispage.jsp
的GET请求,并且得到了尽职的响应,导致对
thispage.jsp
的两个请求——您期望的帖子和一个无关的GET。

请注意,并非所有浏览器都支持“自动关闭”脚本标记。可能是Firefox错误地插入了你的空脚本标签,只包含了你引用的一些脚本文件

<script></script>         <!-- this works -->
<script />                <!-- this doesn't -->

尽管有悖常理,但其原因在文章中得到了很好的解释


编辑:我编写了一个演示文件,从Chrome 22和IE9开始,这就是罪魁祸首。只要我的服务器正常运行,.

那么当删除“src=”“”脚本行时会出现双post吗?我曾经有过一个类似的问题,和你的问题正好相反。