来自JS的Golang Redirect调用CORS错误

时间:2016-04-29 15:45:48

标签: http go cors fetch

当javascript fetch函数调用时,我的golang函数不会重定向到任何地方。这是我之前提出的问题的延伸,这个问题过于宽泛。 Facebook Oauth CORS error

这是我调用golang api的javascript fetch函数。

let config = {
  method: 'GET',
}

fetch("http://localhost:7001/testFunction", config).then(response => {
  ...

这是我尝试重定向的golang函数

func testfunc(w http.ResponseWriter, r *http.Request) {
    http.Redirect(w,r,"https://www.facebook.com/dialog/oauth?..", 302)
    http.Redirect(w, r, "http://localhost:7001/", 302)
    http.Redirect(w, r, "http://google.com/", 302)
}

结果应该是页面重定向到域外的页面,但我一直在网络上出现此错误。

Fetch API cannot load http://google.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

我不能使用no-cors模式,因为我需要重定向到该页面,甚至还要检索json。

我确保golang服务器标头正确并允许javascript源(localhost:3000)。我确保facebook上的oauth api允许golang服务器域(localhost:7001)。但是,当访问localhost域范围之外的域时,重定向始终被阻止。

1 个答案:

答案 0 :(得分:1)

你不能这样做,你必须实际重定向浏览器(在弹出窗口或其他东西中打开它)。