然后,又想用Go语言重写之前的DotnetCore的WebAPI,现在还在编写中,只是对比下两个语言差异。
然后看下 C#
实际上目前我也没有能力判断GO和C#哪个更好
协议+域名+端口号都相同才是同域在 HTML 中,<a>, <form>, <img>, <script>, <iframe>, <link>等标签以及 Ajax 都可以指向一个资源地址,而所谓的跨域请求就是指:当前发起请求的域与该请求指向的资源所在的域不一样。
如果对跨域请求不做限制,会有安全隐患
跨源资源共享 Cross-Origin Resource Sharing(CORS) 是一个新的 W3C 标准,它新增的一组HTTP首部字段,允许服务端其声明哪些源站有权限访问哪些资源。换言之,它允许浏览器向声明了 CORS 的跨域服务器,发出 XMLHttpReuest 请求,从而克服 Ajax 只能同源使用的限制。
在使用go语言写测试服务的时候遇到了前端跨域请求问题,只需在go中加入
https://www.jianshu.com/p/f880878c1398
http跨域: https://zhangbinalan.gitbooks.io/protocol/content/httpkua_yu_qing_qiu.html
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
现在有个结构体如下定义:
但是,go语言函数不支持默认参数,同时即使go语言支持默认参数,但是如果配置项过多,那么每一个配置项都得写一个默认参数,也不现实。
那么,在go语言中,我们怎么优雅的给其初始化呢,这时,就需要利用选项模式了(option)。
首先,我们定义一个option函数类型:
它接收一个参数: *Server 。
然后定义一个 NewServer 函数,它接收一个 Option类型的不定参数:
最后,再直接定义一系列返回 Option的函数
使用时,直接: