go语言解决跨域的问题图片显示问题

直接上代码

package main
 
import (
    "fmt"
    "io/ioutil"
    "net/http"
)
 
//获取C的图片数据
func ReadImgData(url string) []byte {
    resp, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    pix, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }
    return pix
}
 
func myWeb(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
    w.Header().Add("Access-Control-Allow-Headers", "Content-Type") //header的类型
  //w.Header().Set("content-type", "application/json") //返回数据格式是json
 
    query := r.URL.Query();
    var url string;
    var name string;
    if len(query["url"]) > 0{
        url = query["url"][0]
    }else {
        fmt.Fprintf(w, "");
        return ;
    }
 
    if len(query["name"]) > 0{
        name = query["name"][0];
        w.Header().Set("content-type", "application/octet-stream")
        w.Header().Set("Content-Disposition", "attachment; filename=" + name)
    }
 
    fmt.Println(url,name);
    pix := ReadImgData(url);
    w.Write(pix )
    //fmt.Fprintf(w, "这是一个开始");
}
 
func main() {
    http.HandleFunc("/", myWeb)
    fmt.Println("服务器即将开启,访问地址 http://localhost:3000")
    err := http.ListenAndServe(":3000", nil)
    if err != nil {
        fmt.Println("服务器开启错误: ", err)
    }
}

调用方式:

<img src="http://localhost:3000?url=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F32f065b3afb3fb36b75a5cbc90051b1050e1e6b6e199-Ml6q9F_fw320&name=test.jpg" >
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?