]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: update Response.Request.URL after redirects on GOOS=js
authorSean Liao <sean@liao.dev>
Sun, 16 Nov 2025 00:45:28 +0000 (00:45 +0000)
committerSean Liao <sean@liao.dev>
Fri, 21 Nov 2025 20:47:34 +0000 (12:47 -0800)
Fixes #71346

Change-Id: Id4053626e621faf50bb88a10ca0d540f393c8e01
Reviewed-on: https://go-review.googlesource.com/c/go/+/720860
Reviewed-by: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
src/net/http/roundtrip_js.go

index 7ae94617bcfb583cd24cd7d750cba48b777624d7..d3757510ed395f80f9018f146d6a7dbc77c97411 100644 (file)
@@ -11,6 +11,7 @@ import (
        "fmt"
        "io"
        "net/http/internal/ascii"
+       "net/url"
        "strconv"
        "strings"
        "syscall/js"
@@ -195,6 +196,13 @@ func (t *Transport) RoundTrip(req *Request) (*Response, error) {
                        uncompressed = true
                }
 
+               if result.Get("redirected").Bool() {
+                       u, err := url.Parse(result.Get("url").String())
+                       if err == nil {
+                               req = req.Clone(req.ctx)
+                               req.URL = u
+                       }
+               }
                respCh <- &Response{
                        Status:        fmt.Sprintf("%d %s", code, StatusText(code)),
                        StatusCode:    code,