golang http服务器跨域问题解决

func main() {

	openHttpListen()
}

func openHttpListen() {
	http.HandleFunc("/", receiveClientRequest)
	fmt.Println("go server start running...")

	err := http.ListenAndServe(":9090", nil)
	if err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

func receiveClientRequest(w http.ResponseWriter, r *http.Request) {

	w.Header().Set("Access-Control-Allow-Origin", "*")             //允许访问所有域
	w.Header().Add("Access-Control-Allow-Headers", "Content-Type") //header的类型
	w.Header().Set("content-type", "application/json")             //返回数据格式是json

	r.ParseForm()
	fmt.Println("收到客户端请求: ", r.Form)

测试下来,发现web端发送数据给go服务器是可以收到的,就在go服务器返回数据给client web端的时候,出现了跨域错误提示,给http.ResponseWriter.Header() 加这三行代码即可:

w.Header().Set("Access-Control-Allow-Origin", "*")             //允许访问所有域
w.Header().Add("Access-Control-Allow-Headers", "Content-Type") //header的类型
w.Header().Set("content-type", "application/json")             //返回数据格式是json
时间: 2024-10-21 21:41:30

golang http服务器跨域问题解决的相关文章

tomcat 7服务器跨域问题解决

前段时间测试angularjs,然后,用tomcat的时候,老弹出 No 'Access-Control-Allow-Origin'这玩意儿,然后,找了很多帖子,无果, 最后,看了tomcat的配置文档,弄了一个,问题就解决了. 打开tomcat安装目录 -> 打开 conf 目录 -> 打开web.xml文件 将如下代码复制到web.xml文件中(我是放在 460左右的位置,不要放在最前面和最后面,一定要放中间) <filter> <filter-name>CorsF

IE8 jquery跨域问题解决

1.IE8 jquery跨域问题解决: 加下面code 源地址: https://github.com/dkastner/jquery.iecors/blob/master/jquery.iecors.js (function( jQuery ) { // Create the request object // (This is still attached to ajaxSettings for backward compatibility) jQuery.ajaxSettings.xdr

FastAdmin 关于跨域问题解决

FastAdmin 关于跨域问题解决 之前很久之前收集到社区的问题. https://forum.fastadmin.net/thread/277 今天又有人问到,无法打开,估计是网络问题. 以下为完整配置 1 # # CORS header support # # One way to use this is by placing it into a file called "cors_support" # under your Nginx configuration directo

odoo Controller接口开发 POST请求的跨域问题解决方法

odoo Controller接口开发 POST请求的跨域问题解决方法 1.odoo Controller接口开发,前端在请求的时候会发生跨域问题,报错信息如下:Function declared as capable of handling request of type 'json' but called with a request of type 'http' 2.解决方法如下: odoo官网给的参数解释: cors – The Access-Control-Allow-Origin c

【网络开发】WeX5的Ajax和Django服务器json接口对接跨域问题解决

问题背景 WeX5是典型的html5+js架构.源文件全部放到服务器的UI Server中,使用通用的tomcat,例如使用域名www.wuyoubar.cn:8080/x5. Android和IOS的服务器端Django已经实现了json的处理,json的主域名www.wuyoubar.cn:80 PC访问WeX5页面.避免重复进行数据处理,WeX5的JS代码里面直接使用Ajax请求Django的json接口数据.这样就出现了跨域的问题,对于客户端来说,请求的源码,页面文件,css和js代码等

前端跨域问题解决方法

1.什么是跨域及产生原因 跨域是指a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源. 跨域情况如下: url 说明 是否跨域 http://www.cnblogs.com/a.jshttp://www.a.com/b.js 不同域名 是 http://www.a.com/lab/a.jshttp://www.a.com/script/b.js

canvas关于getImageData跨域问题解决方法

一.问题:在使用html5的canvas是,当用到getImageData方法获取图片信息时,会碰到跨域无法获取的情况,代码如下: document.getElementById("pic").onload=function(){ var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("

前端开发用nginx代理服务器解决服务器跨域问题及跨域访问https访问(mac系统下)

前端开发经常遇到一些服务器由于跨域造成访问不了的情况.以前BS模式,前后端都是一个人开发,跨域问题造成的开发阻碍不是很明显,但是现在前端框架欣欣向荣,很多时候变成了CS模式的开发,但浏览器天生的跨域限制,造成了开发,特别是对单独的前端开发人员(不太懂后台开发的人)造成一定开发障碍.还好有nodejs及其一系列前端自动化工具很好的解决了开发时的问题.但今天我要说的用nginx代理来解决这个问题.我觉得很简单!以下都是基于mac系统的操作!先看没有代理时,随便访问网上一个接口, http://web

web项目中的跨域问题解决方法

一种是JSONP 一种是 CORS. 在客户端Javascript调用服务端接口的时候,如果需要支持跨域的话,需要服务端支持. JSONP的方式就是服务端对返回的值进行回调函数包装,他的优点是支持众多的浏览器, 缺点是仅支持Get的方式对服务端请求. 另一种主流的跨域方案是CORS,他仅需要服务端在返回数据的时候在相应头中加入标识信息.这种方式非常简便.唯一的缺点是需要浏览器的支持,一些较老的浏览器可能不支持CORS特性. 跨域支持是创建WebService时应该考虑的一个功能点,文中是使用Se