我正在使用golang开发API休息,并且我具有以下代码来创建路由器和处理程序:
router := mux.NewRouter()
router.HandleFunc("/house", ReturnHouse).Methods("POST", "OPTIONS")
log.Fatal(http.ListenAndServe(":8005", router))
func ReturnHouse(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
house := r.Header.Get("house")
houseInfo := GetInfoHouse(house)
json.NewEncoder(w).Encode(houseInfo)
}
这个想法是在标头中有一个名为house的参数,并发送如下这样的数据:
为此,我在角度7中有下一个代码:
getHouse(url){
let headers = new HttpHeaders({
'Content-Type': 'text/plain',
'house': url});
let options = { headers: headers };
this.http.post(endpoint+'house', null, options).subscribe(
(val) => {
console.log("POST call successful value returned in body",
val);
},
response => {
console.log("POST call in error", response);
},
() => {
console.log("The POST observable is now completed.");
});
该请求工作并返回200,但是在golang中,house参数为空,并且出现以下错误:
不允许请求标头字段存放 飞行前响应中的Access-Control-Allow-Headers错误
但是Postman可以完美地工作。
如何解决此请求?
谢谢