当前位置: 首页 > news >正文

沛县专业做网站照片查询百度图片搜索

沛县专业做网站,照片查询百度图片搜索,中国郑州建设信息网站,视频聊天网站怎么建设Golang解决跨域问题 前置知识:跨域问题产生条件及原因 跨域是是因为浏览器的同源策略限制,是浏览器的一种安全机制,服务端之间是不存在跨域的。 所谓同源指的是两个页面具有相同的协议、主机和端口,三者有任一不相同即会产生跨域…

Golang解决跨域问题

前置知识:跨域问题产生条件及原因

跨域是是因为浏览器的同源策略限制,是浏览器的一种安全机制,服务端之间是不存在跨域的。

所谓同源指的是两个页面具有相同的协议、主机和端口,三者有任一不相同即会产生跨域。

解决

1 设置请求头

//1. 允许所有来源:不限IP
//2. 允许所有方法
//3. 允许请求头
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS, DELETE")
w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Accept,yi-token")

2 处理预处理请求

w3c规范要求,当浏览器判定请求为复杂请求时,会在真实携带数据发送请求前,多一个预处理请求:

  1. 请求方法不是get head post
  2. post 的content-type不是application/x-www-form-urlencode,multipart/form-data,text/plain [也就是把content-type设置成"application/json"]
  3. 请求设置了自定义的header字段: 比如业务需求,传一个字段,方面后端获取,不需要每个接口都传
if r.Method == "OPTIONS" {//handle the preflight requestw.Header().Set("Access-Control-Allow-Origin", "*")w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS, DELETE")w.Header().Set("Access-Control-Allow-Headers", "Content-Type, Accept,yi-token")w.WriteHeader(http.StatusOK)return
}

3 允许自定义请求头

当我们有自定义请求头(如token)需要传递时,也需要在代码中设置

//允许yi-token在请求头中传递
w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Accept,yi-token")

4 完整代码

package mainimport ("github.com/aobco/log""net/http""time"
)/*后端解决跨域问题
*/func main() {mux := http.NewServeMux()mux.Handle("/cros/smoke", interceptor(http.HandlerFunc(smoke)))http.ListenAndServe(":8080", mux)
}func smoke(w http.ResponseWriter, r *http.Request) {now := time.Now().String()_, err := w.Write([]byte(now))if err != nil {log.Errorf("%v", err)w.WriteHeader(http.StatusInternalServerError)return}return
}//拦截器
func interceptor(next http.Handler) http.Handler {return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {//resolve the cross origin[解决预请求]//w3c规范要求,当浏览器判定请求为复杂请求时,会在真实携带数据发送请求前,多一个预处理请求://1. 请求方法不是get head post//2. post 的content-type不是application/x-www-form-urlencode,multipart/form-data,text/plain [也就是把content-type设置成"application/json"]//3. 请求设置了自定义的header字段: 比如业务需求,传一个字段,方面后端获取,不需要每个接口都传if r.Method == "OPTIONS" {//handle the preflight requestw.Header().Set("Access-Control-Allow-Origin", "*")w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS, DELETE")w.Header().Set("Access-Control-Allow-Headers", "Content-Type, Accept,yi-token")w.WriteHeader(http.StatusOK)return}w.Header().Set("Access-Control-Allow-Origin", "*")w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS, DELETE")w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Accept,yi-token")next.ServeHTTP(w, r)})
}
http://www.hkea.cn/news/711870/

相关文章:

  • 武山建设局网站什么是seo
  • 做文案需要用到的网站全网模板建站系统
  • 苏州乡村旅游网站建设策划书网站建设百度推广
  • 12380网站建设情况总结百度浏览器入口
  • 直播网站开发要多久排行榜前十名
  • 网站备案完才能建站吗企业建站公司
  • 网站开发外包合同西安网站优化公司
  • 2022网页设计尺寸规范和要求怎么做seo关键词优化
  • 北京大学两学一做网站十大收益最好的自媒体平台
  • 网站开发服务费企业网站建设的一般要素
  • 台州企业网站制作公司郴州网站推广
  • 如何做移动端网站邮件营销
  • 网站制作佛山crm管理系统
  • 网站综合营销方案设计网页设计教程
  • 东莞做网站制作宁波技术好的企业网站制作
  • 广州做网站公司哪家好如何注册一个网站
  • 网站备案协议书互联网营销师证书含金量
  • 广州企业网站建设报价免费推广网站大全
  • 宁波网站排名怎么提交网址让百度收录
  • 杭州 手机网站建设活动营销
  • 加网络网站建设工作室做一个企业网站大概需要多少钱
  • 张家港优化网站seo百度网盘下载
  • 烟台有没有做网站网站安全
  • 网站建设与制作设计公司惠州seo代理商
  • 东营新闻网今日头条常州网站seo
  • 东莞全网合一网站黄页引流推广网站软件免费
  • wordpress的数据库在那里百度seo如何快速排名
  • wordpress手机客服代码免费seo快速排名工具
  • web网站开发作品关键词歌词图片
  • 汕头行业网站seo培训公司