diff options
author | Luca Casonato <lucacasonato@yahoo.com> | 2021-01-18 13:59:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-18 13:59:29 +0100 |
commit | 7a30d1a3d85b47434c1bdbd03052ade3dba3c77c (patch) | |
tree | 34df25c43fd690c7acd62d9a8c72704553eb80ae /op_crates/fetch | |
parent | 12577f2d9a08256417af2f1e92ed7f667f7a4a6a (diff) |
fix: redirect in --location relative fetch (#9150)
Diffstat (limited to 'op_crates/fetch')
-rw-r--r-- | op_crates/fetch/26_fetch.js | 4 | ||||
-rw-r--r-- | op_crates/fetch/lib.rs | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/op_crates/fetch/26_fetch.js b/op_crates/fetch/26_fetch.js index c8a470033..52c281d3b 100644 --- a/op_crates/fetch/26_fetch.js +++ b/op_crates/fetch/26_fetch.js @@ -1373,7 +1373,7 @@ redirected, rid: fetchResponse.bodyRid, status: fetchResponse.status, - url, + url: fetchResponse.url, }); const response = new Response(responseBody, responseInit); @@ -1404,7 +1404,7 @@ !redirectUrl.startsWith("http://") && !redirectUrl.startsWith("https://") ) { - redirectUrl = new URL(redirectUrl, url).href; + redirectUrl = new URL(redirectUrl, fetchResponse.url).href; } url = redirectUrl; redirected = true; diff --git a/op_crates/fetch/lib.rs b/op_crates/fetch/lib.rs index f882736f5..256e7904d 100644 --- a/op_crates/fetch/lib.rs +++ b/op_crates/fetch/lib.rs @@ -227,6 +227,7 @@ pub async fn op_fetch_send( //debug!("Fetch response {}", url); let status = res.status(); + let url = res.url().to_string(); let mut res_headers = Vec::new(); for (key, val) in res.headers().iter() { let key_string = key.to_string(); @@ -261,6 +262,7 @@ pub async fn op_fetch_send( "status": status.as_u16(), "statusText": status.canonical_reason().unwrap_or(""), "headers": res_headers, + "url": url, "responseRid": rid, })) } |