我希望以前有人遇到过这种情况。我正在使用LightBox从服务器检索图像。在运行时通过使用URL请求中的参数创建图像。现在,这在所有浏览器中都可以正常工作。今天我注意到Chrome发送了两次请求。IE, FF和Safari不这样做。
使用Chrome开发人员的工具网络选项卡,我看到对服务器进行了两次调用,第一次是lightbox,第二次是Jquery行7937。在firefox中使用相同的工具,只进行一次调用。
在服务器端,我调试了它,它所做的只是通过OutputStream返回一个图像。它从Chrome调用了两次,但只是因为Chrome调用了两次。知道它为什么会这样吗?如有任何意见,不胜感激。 下面的代码<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.js"></script>
<script type="text/javascript" src="http://localhost/dawn/AEIX/js/lightbox.js"></script>
<script type="text/javascript">
$("#display_id").click(function(e){
var urlGetString = $.param($('#mainform_id').serializeArray());
urlGetString = "http://localhost/show.do?" + urlGetString;
$("#display_id").attr("href", urlGetString);
});
</script>
</head>
<body>
<form name="mainform" id="mainform_id" action="http://localhost/report.do">
<!-- lots of input fields here -->
<a id="display_id" href="#" data-lightbox="histogram3">
<button type="button" class="button">DISPLAY</button>
</a>
</form>
</body>
</html>
解决方案是由一个非常有帮助的用户在GitHub提供的。解决方案&用户信息可以在下面找到。
https://github.com/lokesh/lightbox2/issues/239 issuecomment - 46556681
我在Chrome中尝试了解决方案,现在工作得很好。它只向服务器发送一次数据。其余的浏览器仍然像以前一样工作。