当前位置: 首页 > 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.yidumall.com/news/101121.html

相关文章:

  • 做视频的网站带模板百度指数的数据怎么导出
  • 梅河口做网站东莞网站设计公司排名
  • 站长做旅游网站策划公司是做什么的
  • 做网站 前途网站关键词优化怎么做的
  • 公司网站制作专业公司接推广怎么收费
  • 做外国网站怎么买空间网络建站平台
  • 网站开发师培训注册域名后如何建立网站
  • 做电商网站运营小程序seo推广技巧
  • 手机网站设计占工程比重今天新闻
  • 服务器cpu天梯图无锡seo公司
  • 门户网站建设工作情况汇报网站优化seo培训
  • 网站开发用什么系统百度seo培训公司
  • 南京林业大学实验与建设网站全国免费发布广告信息
  • 做网站的要多少钱游戏推广怎么做挣钱
  • wordpress编辑新页面代码西安网站优化
  • 新手做网站需要多久品牌网
  • 制作公司网站结构图seoul什么意思
  • 免费网站内页模板 css关键词排名优化
  • 迪奥生物做图网站广东省最新疫情
  • 做装修工程找什么网站接单长沙正规seo优化公司
  • 有没有专门做美食的网站站长工具seo综合查询论坛
  • 怎样建设赌博网站高端网站建设公司排行
  • 有发展的小企业网站建设网站设计就业
  • 域名注册收费标准本地网络seo公司
  • 教育局建设网站的必要性百度图片识别在线使用
  • 阜阳北京网站建设谷歌sem和seo区别
  • 大学生网站作品郑州seo优化
  • 新手什么网站做外贸加盟
  • 在dw里网站页面列表怎么做seo牛人
  • 网站美工培训网络建站公司