我正在使用Struts2,在我的jsp页面中,我动态设置了以src
结尾的.action
属性。在我的Firefox和IE中,它正在调用操作,但无法在最新的Chrome中调用操作。
需要帮助
<img src="/CRD/onlineUser/jcaptchaImage.action" width="180px" id="captchaId" height="70px" />
</div>
<s:textfield name="jCaptchaResponse" value="" title='%{getText("app.onlineUser.tooltip.captcha")}' id="onlineUser_jCaptchaResponse" />
<s:a onclick="document.getElementById('captchaId').src = 'jcaptchaImage.action#' + Math.random();" title='%{getText("app.onlineUser.tooltip.reload")}' href="#">
<img src="<s:url value=" /images/reloadIcon.png "/>" align="absmiddle" alt="<s:text name=" app.onlineUser.tooltip.reload "></s:text>"/>
</s:a>
当我检查chrome中的元素时,我在控制台中收到以下警告:
“资源被解释为图像但使用MIME类型text / jpeg传输:”localhost / User / jcaptchaImage.action“。”;
Struts-config.xml文件包含:
<action name="jcaptchaImage"
class="org.uic.cc.crd.action.onlineUser.OnlineUserAction" method="captchaGenerator">
<-- Interceptors are used here -->
<result name="success" >tiles.registrationForm</result>
</action>
操作OnlineUserAction.java包含方法captchaGenerator()
public String captchaGenerator() {
//Logic
OutputStream outputStream = null;
final String captchaId = request.getSession().getId();
final BufferedImage image = getImageCaptchaService()
.getImageChallengeForID(captchaId, request.getLocale());
// Encode to JPEG Stream
outputStream = response.getOutputStream();
ImageIO.write(image, IMAGE_FORMAT, outputStream);
outputStream.close();
return null;
}
答案 0 :(得分:0)
问题最终得到解决:)我用'?'代替'#'在src值,即jcaptchaImage.action#到jcaptchaImage.action? 。有效 。感谢大家 :) `
<img src="/CRD/onlineUser/jcaptchaImage.action" width="180px" id="captchaId" height="70px" />
</div>
<s:textfield name="jCaptchaResponse" value="" title='%{getText("app.onlineUser.tooltip.captcha")}' id="onlineUser_jCaptchaResponse" />
<s:a onclick="document.getElementById('captchaId').src = 'jcaptchaImage.action?' + Math.random();" title='%{getText("app.onlineUser.tooltip.reload")}' href="#">
<img src="<s:url value=" /images/reloadIcon.png "/>" align="absmiddle" alt="<s:text name=" app.onlineUser.tooltip.reload "></s:text>"/>
</s:a>
`