场景:统计前端数据,以image形式发送请求以解决跨域问题,请求成功后返回一个小图片。
前端
function doGet(){
var url = 'http://127.0.0.1:8080/t.gif';
var gif = new Image(1, 1);
gif.src = url;
gif.onload = function(){};
}
后端(springboot)
/**
* Controller
*
*/
@RequestMapping("/t.gif")
public void test(HttpServletRequest request,HttpServletResponse response){
//处理业务成功后
sentImg(response);
}
/**
* 返回图片
* @param response
*
*/
public void sentImg(HttpServletResponse response) {
ServletOutputStream out = null;
FileInputStream fis = null;
try {
File path = new File(ResourceUtils.getURL("classpath:").getPath());
// 图片在项目中的路径为 resources/static/images/img200.png
File img = new File(path.getAbsolutePath(),"static/images/img200.png");
fis = new FileInputStream(img);
byte[] b = new byte[fis.available()];
fis.read(b);
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpeg");
out = response.getOutputStream();
out.write(b);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(null != out)
out.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if(null != fis)
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}