婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > go 原生http web 服務跨域restful api的寫法介紹

go 原生http web 服務跨域restful api的寫法介紹

熱門標簽:百度地圖標注后傳給手機 涿州代理外呼系統 壽光微信地圖標注 excel地圖標注分布數據 外呼系統顯本地手機號 阿克蘇地圖標注 評價高的400電話辦理 外呼系統用什么卡 電話機器人軟件免費

錯誤寫法

func main() {
    openHttpListen()
}
func openHttpListen() {
    http.HandleFunc("/", receiveClientRequest)
    fmt.Println("go server start running...")
    err := http.ListenAndServe(":9090", nil)
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}
func receiveClientRequest(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
    r.ParseForm()
    fmt.Println("收到客戶端請求: ", r.Form)

這樣還是會報錯:

說沒有得到響應跨域的頭,chrome的network中確實沒有響應Access-Control-Allow-Origin

正確寫法:

func LDNS(w http.ResponseWriter, req *http.Request) {
    if origin := req.Header.Get("Origin"); origin != "" {
        w.Header().Set("Access-Control-Allow-Origin", origin)
        w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")
        w.Header().Set("Access-Control-Allow-Headers",
            "Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
    }
    if req.Method == "OPTIONS" {
        return
    }
    // 響應http code
    w.WriteHeader(200)
    query := strings.Split(req.Host, ".")
    value, err := ldns.RAMDBMgr.Get(query[0])
    fmt.Println("Access-Control-Allow-Origin", "*")
    if err != nil {
        io.WriteString(w, `{"message": ""}`)
        return
    }
    io.WriteString(w, value)
}

補充:go http允許跨域

1.創建中間件

import (
 "github.com/gin-gonic/gin"
 "net/http"
)
// 跨域中間件
func Cors() gin.HandlerFunc {
 return func(c *gin.Context) {
  method := c.Request.Method
  origin := c.Request.Header.Get("Origin")
  if origin != "" {
   c.Header("Access-Control-Allow-Origin", origin)
   c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
   c.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
   c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type")
   c.Header("Access-Control-Allow-Credentials", "false")
   c.Set("content-type", "application/json")
  }
  if method == "OPTIONS" {
   c.AbortWithStatus(http.StatusNoContent)
  }
  c.Next()
 }
}

2.在route中引用中間件

router := gin.Default()
// 要在路由組之前全局使用「跨域中間件」, 否則OPTIONS會返回404
router.Use(Cors())

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Django開發RESTful API實現增刪改查(入門級)
  • Django restful framework生成API文檔過程詳解
  • Django JWT Token RestfulAPI用戶認證詳解
  • Python利用Django如何寫restful api接口詳解
  • 詳解Django rest_framework實現RESTful API
  • 詳解Go語言RESTful JSON API創建
  • 基于Go語言構建RESTful API服務

標簽:蘭州 吐魯番 梅河口 汕頭 重慶 銅川 雞西 欽州

巨人網絡通訊聲明:本文標題《go 原生http web 服務跨域restful api的寫法介紹》,本文關鍵詞  原生,http,web,服務,跨域,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《go 原生http web 服務跨域restful api的寫法介紹》相關的同類信息!
  • 本頁收集關于go 原生http web 服務跨域restful api的寫法介紹的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产日韩精品一区| 欧美亚洲一区二区三区四区| 亚洲国产人成综合网站| 国产精品久久看| 久久久久一区二区三区四区| 欧美电影免费观看高清完整版在| 欧美丰满一区二区免费视频| 在线中文字幕一区二区| 在线观看国产日韩| 欧美精品三级在线观看| 日韩视频免费观看高清完整版在线观看| 欧美精品高清视频| 欧美成人艳星乳罩| 久久久亚洲综合| 国产精品电影一区二区三区| 日韩毛片高清在线播放| 亚洲成人av中文| 天天综合色天天| 精品一区二区三区在线播放| 国产一区二区按摩在线观看| 成人午夜短视频| 精品视频全国免费看| 日韩精品一区二区三区四区视频 | 91美女精品福利| 欧美性极品少妇| 日韩久久久精品| 国产精品污网站| 一区二区三区中文在线| 美女精品一区二区| 风间由美一区二区三区在线观看 | 日本一区二区久久| 亚洲人成网站影音先锋播放| 亚洲国产日韩在线一区模特| 精品一区二区三区视频| 成a人片亚洲日本久久| 欧美精品日日鲁夜夜添| 国产欧美日韩不卡| 亚洲福利视频三区| 黑人精品欧美一区二区蜜桃| 91久久香蕉国产日韩欧美9色| 日韩午夜电影av| 亚洲欧洲综合另类在线| 青青草国产精品亚洲专区无| 99久久综合国产精品| 日韩精品专区在线影院观看| 一区二区三区欧美在线观看| 国产另类ts人妖一区二区| 欧美亚洲高清一区二区三区不卡| 精品少妇一区二区三区日产乱码| 亚洲精品中文在线影院| 国产精品18久久久久| 欧美一区二区三区免费视频| 亚洲欧洲av一区二区三区久久| 久久精品国产在热久久| 欧美亚洲一区二区在线| 中文字幕国产一区二区| 久久精品国产精品亚洲精品| 欧美亚洲丝袜传媒另类| 亚洲视频香蕉人妖| 成人高清视频免费观看| 久久久综合九色合综国产精品| 午夜伊人狠狠久久| 色噜噜狠狠一区二区三区果冻| 国产精品网站在线| 成人美女视频在线观看| 精品国产乱码久久久久久牛牛 | 一区二区三区高清| 成人国产精品免费| 中文字幕av一区 二区| 国产福利一区二区| 久久免费视频一区| 国内精品视频666| 欧美成人综合网站| 久久激情综合网| 日韩免费福利电影在线观看| 日韩av一级电影| 4438x亚洲最大成人网| 亚欧色一区w666天堂| 欧美三级乱人伦电影| 亚洲国产aⅴ成人精品无吗| 在线亚洲+欧美+日本专区| 亚洲自拍偷拍欧美| 欧美日韩一区久久| 日韩精品视频网| 欧美不卡在线视频| 美女视频网站黄色亚洲| 国产亚洲欧美日韩在线一区| 国产精品一区二区三区网站| 国产亚洲午夜高清国产拍精品| 成人综合在线观看| 亚洲色图在线播放| 欧美日韩专区在线| 国产在线一区二区综合免费视频| 国产网站一区二区三区| 91麻豆免费视频| 日本aⅴ免费视频一区二区三区| 欧美精品三级日韩久久| 国内精品国产成人国产三级粉色| 国产精品你懂的在线欣赏| 91丨porny丨国产入口| 樱桃视频在线观看一区| 日韩欧美一区中文| av在线一区二区三区| 天天操天天色综合| 国产人妖乱国产精品人妖| 91国偷自产一区二区开放时间 | 欧美一区二区三区喷汁尤物| 国产一区不卡视频| 中文字幕五月欧美| 欧美精品免费视频| 成人三级伦理片| 日韩高清不卡一区二区三区| 国产日韩欧美麻豆| 欧美高清视频不卡网| av亚洲产国偷v产偷v自拍| 天堂va蜜桃一区二区三区| 中文字幕一区二区三区四区| 欧美一区二区视频免费观看| 97精品国产97久久久久久久久久久久| 日韩精品一级二级 | 欧美女孩性生活视频| 国产成人亚洲综合a∨婷婷图片| 亚洲自拍偷拍av| 中文字幕在线不卡| 久久日韩精品一区二区五区| 欧美色视频一区| 色偷偷久久一区二区三区| 国产成人av电影免费在线观看| 日韩精品国产精品| 一区二区三区精品在线观看| 国产欧美一区二区三区网站| 欧美xxxxx裸体时装秀| 欧美无乱码久久久免费午夜一区| 成人黄色免费短视频| 久久精品免费看| 蜜臀久久久99精品久久久久久| 夜夜揉揉日日人人青青一国产精品| 欧美韩日一区二区三区四区| 精品国产1区二区| 精品伦理精品一区| 日韩欧美黄色影院| 91.com在线观看| 欧美精品久久一区| 欧美日本高清视频在线观看| 欧美视频在线一区二区三区 | 中文字幕亚洲一区二区va在线| 久久久亚洲欧洲日产国码αv| 91精品在线麻豆| 欧美人狂配大交3d怪物一区| 欧美视频在线一区| 3d动漫精品啪啪| 日韩欧美中文一区二区| 欧美mv日韩mv国产网站| 久久久噜噜噜久噜久久综合| 久久综合色天天久久综合图片| 日韩丝袜美女视频| 久久亚洲影视婷婷| 国产色一区二区| 亚洲天堂免费看| 午夜精品久久一牛影视| 欧美96一区二区免费视频| 美女一区二区在线观看| 国产黑丝在线一区二区三区| 成人精品一区二区三区中文字幕| 成人激情开心网| 欧美在线一二三四区| 欧美电视剧在线观看完整版| 国产婷婷色一区二区三区四区| 国产精品久久久久久久久免费相片| 国产精品色婷婷久久58| 亚洲综合清纯丝袜自拍| 免费在线观看精品| 成人免费视频网站在线观看| 91国模大尺度私拍在线视频| 日韩一区二区电影| 国产精品久久久久久久久免费丝袜| 亚洲制服丝袜在线| 男男成人高潮片免费网站| 成人黄色在线看| 欧美三级一区二区| 26uuu精品一区二区三区四区在线| 中文字幕av一区二区三区高| 日韩在线播放一区二区| 成人精品国产福利| 欧美一区二区三区四区视频| 久久伊人中文字幕| 一区二区三区在线播放| 国产伦精品一区二区三区免费迷| 91丨九色丨蝌蚪丨老版| 欧美精品一区二区三区高清aⅴ | av亚洲精华国产精华| 日韩欧美国产一区二区三区| 国产精品欧美一级免费| 日本aⅴ亚洲精品中文乱码| 91视频一区二区三区| 久久综合成人精品亚洲另类欧美| 亚洲成a人在线观看| www.色精品| 久久久高清一区二区三区| 无码av免费一区二区三区试看|