skydive跨域问题解决
跨域的相关文章介绍:
https://www.tangshuang.net/2271.html
https://www.cnblogs.com/cc299/p/7339583.html
https://www.cnblogs.com/scharfsinnig/archive/2017/04/27/6769737.html
Go中跨域解决方法文章:
https://studygolang.com/articles/7330
注意点:
1 ...... 2 func (s *httpServer) ServeHTTP(w http.ResponseWriter, r *http.Request) { 3 // Stop here if its Preflighted OPTIONS request 4 if origin := r.Header.Get("Origin"); origin != "" { 5 w.Header().Set("Access-Control-Allow-Origin", "*") 6 w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE") 7 w.Header().Set("Access-Control-Allow-Headers", "Action, Module") //有使用自定义头 需要这个,Action, Module是例子 8 } 9 10 if r.Method == "OPTIONS" { 11 return 12 } 13 ...... 14 15 # 因为前端为先发送一次OPTIONS请求到后端,所以return的前面务必加上: 16 # w.Header().Set("Access-Control-Allow-Origin", "*") 17 # w.Header().Add("Access-Control-Allow-Headers", "Content-Type") 18 # 要不前端就探测不成功,就无法进行请求获取相关数据
一、前端代码相关修改
1.index.html
删除下面的代码(该部分为go相关代码,不需要)。
<!-- extra assets --> << range $i, $asset := .ExtraAssets >> << if eq $asset.Ext ".css" >> <link rel="stylesheet" href="<< $asset.Filename >>" /> << end >> << if eq $asset.Ext ".js" >> <script src="<< $asset.Filename >>"></script> << end >> << end >>
添加以下代码:
.... <script src="/statics/js/vendor/vuejs-datepicker.js"></script> <script type="text/javascript"> var HOST = 'http://192.168.32.72:8082', WS_HOST = '192.168.32.72:8082'; </script> <script src="/statics/js/utils.js"></script> ......
2. api.js修改
第11行,修改为: xhr.open('POST', HOST + '/api/topology', true); 第67行,修改为: url: HOST + '/api/topology', 第87行,修改为: url: HOST + '/api/capture', 第104行,修改为: url: HOST + '/api/capture/' + id, 第119行,修改为: url: HOST + '/api/capture', 第149行,修改为: url: HOST + '/api/capture/' + uuid + '/', 第161行,修改为: url: HOST + "/api/config/" + key, 第171行,修改为: url: HOST + '/api/injectpacket', 第185行,修改为: url: HOST + '/api/injectpacket/' + uuid + '/', 第223行,修改为: url: HOST + '/api',
3. websocket.js修改
第2行修改为: this.host = WS_HOST;
4. inject-form.js修改
第247行,修改为: url: HOST + '/api/injectpacket',
5. login.js修改
第25行,修改为: url: HOST + '/login',
二、后端代码修改