我的golang函數在JavaScript提取函數調用時不會在任何地方重定向。這是我以前的問題的擴展,這個問題太廣泛了。 Facebook Oauth CORS errorGolang從JS調用重定向CORS錯誤
這是我調用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.
,因爲我需要重定向到該頁面,甚至檢索JSON回來,我無法使用無CORS模式。
我確保golang服務器標頭是正確的,並且允許javascript origin(localhost:3000)。我確信Facebook上的oauth api允許golang服務器域(localhost:7001)。然而,訪問localhost域作用域之外的域時,重定向始終被阻止。
正如@OneOfOne在回答中所說的,你不能那樣做。你的JS代碼必須發出重定向,並且只有當它在同一個站點上嵌入JS時。否則,你會得到一個CORS錯誤。 – eduncan911