相关疑难解决方法(0)

设置HTTP标头

我正在尝试在Go Web服务器中设置标题.我正在使用gorilla/muxnet/http打包.

我想设置Access-Control-Allow-Origin: *允许跨域AJAX.

这是我的Go代码:

func saveHandler(w http.ResponseWriter, r *http.Request) {
// do some stuff with the request data
}

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/save", saveHandler)
    http.Handle("/", r)
    http.ListenAndServe(":"+port, nil)
}
Run Code Online (Sandbox Code Playgroud)

net/http软件包包含描述发送http请求标头的文档,就像它是客户端一样 - 我不确定如何设置响应标头?

http go http-headers cors

157
推荐指数
6
解决办法
11万
查看次数

如何向Angular http请求添加授权标头?

这是我的第一篇文章.

我刚刚开始学习Go和Angular,我正在尝试将角度应用程序连接到go api.我已经写过这两篇文章而且很难找出问题的根源.我认为这是一个CORS问题,但如果我不在Angular http请求中包含代码标题行,它可以正常工作.此时我只是想添加标题.授权代码尚未实现.

这两个应用程序都在本地运行,端口5000上的Go应用程序和4200上的Angular

Angular http请求不起作用:

this.http.get<ProjectedBalance>(requestUrl, {headers: new HttpHeaders().set('Authorization', 'my-auth-token')})
    .subscribe(data => {
     this.projBalance = data.projBalance;
   }
Run Code Online (Sandbox Code Playgroud)

有效的Angular http请求:

this.http.get<ProjectedBalance>(requestUrl)
    .subscribe(data => {
     this.projBalance = data.projBalance;
   }
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许来源' http:// localhost:4200 '访问.响应具有HTTP状态代码403

我在我的代码中使用gorilla/mux和gorilla/handlers

router := mux.NewRouter()
router.HandleFunc("/home/{endDate}", GetProjBalance).Methods("GET", "OPTIONS")
headersOk := handlers.AllowedHeaders([]string{"X-Requested-With, Content-Type, Authorization"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
//start server on port
log.Fatal(http.ListenAndServe(":5000", handlers.CORS(originsOk, headersOk, methodsOk)(router)))
Run Code Online (Sandbox Code Playgroud)

来自Chrome Dev Tools的标题

Request URL:http://localhost:5000/home/2020-12-21
Request Method:OPTIONS
Status Code:403 Forbidden
Remote Address:[::1]:5000
Referrer Policy:no-referrer-when-downgrade

Response Headers …
Run Code Online (Sandbox Code Playgroud)

go gorilla angular

16
推荐指数
2
解决办法
4万
查看次数

标签 统计

go ×2

angular ×1

cors ×1

gorilla ×1

http ×1

http-headers ×1