mirror of
https://github.com/nlepage/go-wasm-http-server.git
synced 2026-01-12 01:59:14 +00:00
feat: adds Referer, Host, RequestURI and User-Agent on request
This commit is contained in:
20
request.go
20
request.go
@@ -11,6 +11,10 @@ import (
|
||||
"github.com/nlepage/go-wasm-http-server/v2/internal/safejs"
|
||||
)
|
||||
|
||||
var (
|
||||
navigator = safejs.Safe(js.Global().Get("navigator"))
|
||||
)
|
||||
|
||||
// Request builds and returns the equivalent http.Request
|
||||
func Request(uvalue js.Value) (*http.Request, error) {
|
||||
value := safejs.Safe(uvalue)
|
||||
@@ -66,13 +70,21 @@ func Request(uvalue js.Value) (*http.Request, error) {
|
||||
req := &http.Request{
|
||||
Method: method,
|
||||
URL: u,
|
||||
Host: u.Host,
|
||||
Body: bodyReader,
|
||||
Header: make(http.Header),
|
||||
Proto: "HTTP/1.1",
|
||||
ProtoMajor: 1,
|
||||
ProtoMinor: 1,
|
||||
RequestURI: rawURL,
|
||||
}
|
||||
|
||||
referer, err := value.GetString("referrer")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Header.Set("Referer", referer)
|
||||
|
||||
headers, err := value.Get("headers")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -115,5 +127,13 @@ func Request(uvalue js.Value) (*http.Request, error) {
|
||||
req.Header.Set(key, value)
|
||||
}
|
||||
|
||||
if req.UserAgent() == "" {
|
||||
userAgent, err := navigator.GetString("userAgent")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Header.Set("User-Agent", userAgent)
|
||||
}
|
||||
|
||||
return req, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user