ajax部分如下:
$.ajax({
url: 'http://localhost:9090/login?authServer=google',
type: 'GET',
success: function(data){
alert(data)
},
error: function(){
alert("ajax request error!")
}
});
login 路由对应的是LoginByAuth方法。 LoginByAuth方法实现如下:
func (this *OauthController) LoginByAuth(c *gin.Context) {
fmt.Println(".......................LoginByAuth")
authServer := c.DefaultQuery("authServer", "")
conf = readCredentialFile("\\conf\\creds.json", authServer)
state := randToken()
session := sessions.Default(c)
session.Set("state", state)
session.Save()
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type")
c.Writer.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT")
redirect := conf.AuthCodeURL(state)
c.Redirect(http.StatusFound, redirect)
}
三个c.Writer.Header()部分就是为了解决跨域请求问题加的,但是并没有什么卵用! 请求时,页面如下
![微信截图_20171031193411.png](https://static.studygolang.com/171031/3373d9999de3ea06d1b122408a5f75bb.png)
有疑问加站长微信联系(非本文作者)