问题描述
我对Golang wasm请求有些困惑。当我对其进行测试时,该代码在服务中工作得很好,但是当我尝试在带有wasm的浏览器中运行它时,出现读取失败错误。如果我从独立服务中调用此代码,则该代码可以正常运行:
go func() {
authURL := "https://auth.home.rsmachiner.com/login"
type loginStruct struct {
Username string `json:"username"`
Password string `json:"password"`
}
fmt.Println("Pushed login button")
fmt.Printf("Got Login: %v\n",r.LoginBoxValue)
fmt.Printf("Got Password: %v\n",r.PasswordValue)
var login loginStruct
login.Username = r.LoginBoxValue
login.Password = r.PasswordValue
data,err := json.Marshal(&login)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(data))
req,_ := http.NewRequest("POST",authURL,bytes.NewBuffer(data))
client := &http.Client{}
resp,err := client.Do(req)
if err != nil {
fmt.Println("response error")
fmt.Println(err)
return
}
body,err := IoUtil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Print("BODY:")
fmt.Println(string(body))
}()
哪个抛出以下错误:
Post "https://auth.home.rsmachiner.com/login": net/http: fetch() Failed: Failed to fetch
当我从独立客户端尝试时,它可以正常工作。服务器也允许使用CORS
w.Header().Set("Access-Control-Allow-Origin","*")
解决方法
对于任何偶然发现的人,它在浏览器中也可以正常工作。问题是HTML而不是代码。 HTML正在重新加载页面,因此请求由于终止而失败。