Struts2,在 jsp 页面中,img 标签的属性 src 以 .action 结尾,在最新的 Chrome 浏览器中不起作用
Struts2, in jsp page, img tag's attribute src ends with .action, Not working in latest Chrome browser
我正在使用 Struts2,在我的 jsp 页面中,我动态设置了以 .action
结尾的 src
属性。在我的 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 中的元素时,我在控制台中收到以下警告:
"Resource interpreted as Image but transferred with MIME type 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;
}
问题终于解决了:) 我用'?'替换了'#'在 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>
`
我正在使用 Struts2,在我的 jsp 页面中,我动态设置了以 .action
结尾的 src
属性。在我的 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 中的元素时,我在控制台中收到以下警告:
"Resource interpreted as Image but transferred with MIME type 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;
}
问题终于解决了:) 我用'?'替换了'#'在 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>
`