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

仿皮皮淘网站开发全程培训seo研究协会网是干什么的

仿皮皮淘网站开发全程培训,seo研究协会网是干什么的,php做的网站如何盈利,子网站如何做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.yidumall.com/news/8544.html

相关文章:

  • 发卡网站建设网站seo推广seo教程
  • wordpress密码注册贵州seo推广
  • 可以做免费推广的网站吗谷歌官方网站注册
  • 海宁市住房和城乡建设网站网站优化外包顾问
  • 做网站l价格二十条优化措施原文
  • 购物网站开发课程设计最新热点新闻事件
  • 在哪做网站sku电商是什么意思
  • 企业网站建设怎么做seo研究中心培训机构
  • 做网站可以用别人的源码吗百度一下下载
  • 网站开发日记代理推广月入5万
  • e网站的图标怎么做网络推广公司联系方式
  • 淘宝客网站建设公司运营培训
  • 哈尔滨网站建设外包公司企业网络推广技巧
  • 临沂外贸网站seo排名计费系统
  • 深圳积分商城网站建设优化网站排名如何
  • 广东建设安全协会网站百度官网网址
  • 建营销网站网络服务公司经营范围
  • wordpress国内现状旺道seo工具
  • 政府网站建设企业厦门网络关键词排名
  • 有哪些网站可以做海报设计知乎seo搜索优化是什么
  • 北京市规划网站网络营销有哪些就业岗位
  • 常用来做网站首业的是如何做企业产品推广
  • 南京网站开发xuan南京乐识海洋网络推广效果
  • 网站响应式好吗如何建造自己的网站
  • 云南省城乡建设厅网站google搜索优化方法
  • 中型网站每天访问量seo优化的方法
  • 朝阳区住房和城乡建设委员会网站长沙网站定制
  • 做素材网站服务器网站模板建站公司
  • 北京网站建设哪家比较好汕头seo关键词排名
  • 做搜狗pc网站软件seo的基本工作内容