gif跨域請求成功返回圖片

場景:統計前端數據,以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();
             }
             
         }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章