我使用以下功能进行图片上传/显示
Target是我正在更新从表单函数返回的内容的div。我想要ajax,所以我不需要重新加载整个页面只是为了上传和查看图像的预览。
我上传了一张图片,将其显示在预览中,然后裁剪它,并执行另一项功能,将其显示在新目标中(未显示),
问题是在IE 8中它似乎缓存了所有的ajax调用,即使我没有设置它,让它显示的唯一方法是硬刷新。有没有办法强迫它不缓存? 当然,这在所有其他浏览器中都可以正常工作。
$("#profile-photo").submit(function() {
var myOptions = {
target: '#preview-target',
beforeSubmit: showRequest,
success: showResponse,
clearForm: true,
resetForm:true,
cache:false
};
$(this).ajaxSubmit(myOptions);
return false;
});
答案 0 :(得分:2)
我怀疑它是否缓存提交,更有可能是缓存图片网址。在您的回复中,您是否只是发回新图片的网址?如果是这样,请尝试附加查询字符串:
<img src="/my/path/to/my/image.jpg?q=12345" />
这应该强制所有浏览器从服务器重新加载图像。
答案 1 :(得分:1)
如果这涉及GET
请求,那么这是真的。如果您没有任何选项可以将其更改为POST
,那么最好的方法是在每个请求上动态地将带有时间戳的额外查询参数附加到URL。在Javascript中,您可以使用new Date().getTime()
。