这是跨域失败了吧?
我想要达到的预期结果:见红色框框

我自己实践运行的结果:


问题发生的背景:
前端代码我用的是老师提供的,只是修改了HOST为192.168.8.102:3000。
后端是用go写的,目前只写了一个注册接口。
问题相关主要代码如下:
main.go
func main() {
router := gin.Default()
router.Use(middlewares.Cors())
router.POST("/users/register",func(c *gin.Context){
username := c.PostForm("username")
age := c.DefaultPostForm("age","anonymous")
res_data := map[string]interface{}{
"_id":"18888888888",
"username":username,
"password":"123",
"age":age,
"city":"北京",
"gender":1,
"createdAt":"2020-0416T08:00:12.725Z",
"updatedAt":"2020-0416T08:00:12.725Z",
}
c.JSON(http.StatusOK,gin.H{
"errno":0,
"data":res_data,
})
})
router.Run("192.168.8.102:3000")
}middleware/cors.go
func Cors() gin.HandlerFunc {
return func(c *gin.Context) {
method := c.Request.Method
c.Header("Access-Control-Allow-Origin", "http://192.168.8.133:8080")
// Origin, Accept, Authorization")
c.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token, X-Requested-With,Authorization, Token, x-token,Origin, Accept, Authorization")
// 告诉浏览器你有哪些方法可以使用
c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PATCH, PUT")
c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type")
c.Header("Access-Control-Allow-Credentials", "true")
if method == "OPTIONS" {
c.AbortWithStatus(http.StatusNoContent)
}
c.Next()
}
}由于目前只想解决跨域问题,所以返回的数据都是写死的,没有请求数据库。
我的解答思路和尝试过的方法:
前端代码是老师提供的,后端我只负责写对应的接口和返回相应的数据即可。
注册接口就是:其他的暂未实现。

接口返回的数据就是按照视频的效果照做的:写死的

这一块完成之后,下一步就是在服务端设置跨域:

依照这些思路去做,并未解决课程要求的带cookie跨域,我不知道自己是哪里 “”不知道“”,
那么我希望得到的反馈是什么?
前端还是老师提供的的代码,后端依然是go,那么后端要解决cookie的跨域问题,要分解为那几步骤呢?可以提供关键词吗?我收到回答后自己去实践。
跟后端语言应该没关系,因为解决cookie跨域的问题的思路是相通的,我可能是对这个思路的完整流程没掌握,所以我提出了这个问题,我希望能收到本章节 在后端是如何解决cookie跨域的问题的思路步骤。
最后,我的问题你觉得我描述的清楚了吗?
正在回答
同学你好,解答如下:
1、红色框中不能说明跨域失败了。如下位置,说明已经设置跨域了:

2、老师不会go语言,所以无法对代码给与相应的帮助。
3、目前谷歌等浏览器,禁止了跨域携带cookie。即使代码中设置了允许跨域携带cookie,那么浏览器也会禁掉。建议同学换个浏览器测试效果,比如换成火狐、360等试试。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星