diff --git a/pkg/torproxy/torproxy.go b/pkg/torproxy/torproxy.go index d03a679..6b11e95 100644 --- a/pkg/torproxy/torproxy.go +++ b/pkg/torproxy/torproxy.go @@ -261,7 +261,12 @@ func reverseProxy(redirects []*url.URL, lis net.Listener, dialer proxy.Dialer) e http.HandleFunc(removeForUpstream+"/", func(w http.ResponseWriter, r *http.Request) { // add cors headers - addCorsHeader(w) + addCorsHeader(w, r) + + // Handler pre-flight requests + if r.Method == http.MethodOptions { + return + } // prepare request removing useless headers if err := prepareRequest(r); err != nil { @@ -286,7 +291,10 @@ func withoutOnion(host string) string { return strings.ReplaceAll(hostWithoutPort, ".onion", "") } -func addCorsHeader(w http.ResponseWriter) { +func addCorsHeader(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodOptions { + return + } w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE") w.Header().Set("Access-Control-Allow-Headers", "*")