douyan1972 2019-04-18 08:13
浏览 1025
已采纳

GO:cors-Http状态503-请求的资源上不存在“ Access-Control-Allow-Origin”标头

I have an API made in Go, and a Front in Angular.

When i ping that url : https://myDomain/v1/users/sign/up Angular is trying to do an OPTIONS request.

I saw on some topics that I have to setup cors in my API, that's what I did:

In my main.go file:

servMuxApi := http.NewServeMux()
user.SetUserRoute(servMuxApi)

c := cors.SetupCors()
handler := c.Handler(servMuxApi)

if err := http.ListenAndServe(servPort, handler); err != nil {
    log.Fatal(err)
}

In the SetUserRoute function i just have a HandleFunc:

router.HandleFunc("/v1/users/sign/up", SignUpUser)

SetupCors function :

func SetupCors() *cors.Cors {
    return cors.New(cors.Options{
        AllowedOrigins:   []string{"http://localhost:8081*", "chrome-extension://coohjcphdfgbiolnekdpbcijmhambjff"},
        AllowedMethods:   []string{http.MethodGet, http.MethodPost, http.MethodPut, http.MethodPatch, http.MethodDelete, http.MethodOptions},
        AllowCredentials: true,
        OptionsPassthrough: true,
        })
    }
}

NB: the chrome extension you see is the Postman extension i use on Chrome.

With all of that set i'm still having errors on the Google Chrome console when i try my Angular front Sign Up form :

OPTIONS https://myDomain/v1/users/sign/up 503

Access to XMLHttpRequest at 'https://myDomain/v1/users/sign/up' from origin 'http://localhost:8081' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

EDIT: the problem is, that, on the Chrome console, i don't see that Respone enter image description here

  • 写回答

2条回答 默认 最新

  • doudang8824 2019-04-18 15:11
    关注

    I finally understood the problem. I use CloudFlare (https://www.cloudflare.com) to set some security on my server. But on CloudFlare the "under attack mode" variable was set to "ON" -> Prohibiting every request on my API. After setting this to off, every request work. So the problem didn't come from my API or my Front. My API was well set...

    If you use a Reverse Proxy, or some firewalls, please be very careful with your configurations we had a lot of conflicts.

    Thank you very much to @Or Yaacov and @mh-cbon for helping me. Hope this answer will help someone.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配