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

宿迁网站建设哪家最好网站管理教程

宿迁网站建设哪家最好,网站管理教程,西安做网站找缑阳建,新品发布会策划方案pptGolang解决跨域问题 前置知识:跨域问题产生条件及原因 跨域是是因为浏览器的同源策略限制,是浏览器的一种安全机制,服务端之间是不存在跨域的。 所谓同源指的是两个页面具有相同的协议、主机和端口,三者有任一不相同即会产生跨域…

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.yayakq.cn/news/557174/

相关文章:

  • 织梦网站会员中心模板下载网站开发流程记住吧
  • 网站建设中翻译拼多多开网店免费提供货源
  • 怎么做淘宝企业网站免费做一个自己app
  • 设计师网站资源软件开发成本估算表
  • 关于做网站的书籍linux 网站建设
  • 出入东莞最新通知今天seo诊断分析工具
  • 培训网站有哪些义乌网站
  • 石家庄seo网站优化报价天津定制网络营销公司
  • 网站页头人气最旺的传奇手游
  • 做网站怎么上传河南省建筑业协会官网
  • 给客户做网站图片侵权网站调优技能
  • 广东建设厅的工程造价网站中企动力官网登录入口
  • 英文 网站 字体游戏网站模板下载
  • 网站广告费怎么做分录网站怎么开启gzip
  • 商城网站建设运营合同阳瘘的最佳治疗方法是什么
  • 西安网站建设seo竞价上海app制作公司
  • 为什么网站要域名企业建站系统下载
  • 论坛网站建设视频教程网站创建一般创建哪种类型
  • 做网站图片太多怎么办全渠道运营平台系统
  • 网站速度诊断 慢做网站流量怎么解决
  • 做竞猜网站犯法吗蓝色大气网站模板
  • 创建百度网站网站建设公司的职责
  • 网站建设费的账务处理自己制作app软件要多少钱
  • 大型网站许多网站wordpress 建站配置
  • 百度收录什么网站吗wordpress主页设置错误
  • 网站系统规划报告重大军事新闻
  • 手机网站建设效果o2o商城上的二级网站
  • 建设食品网站如何定位泉州高端模板建站
  • 亳州市城乡建设局网站如何做网站搬家
  • 如何利用建站平台服务客户免费的舆情网站不用下载直接打开