在飞行前响应错误中,Access-Control-Allow-Headers不允许请求标头字段“ house”

时间:2019-05-13 21:24:17

标签: angular go cors gorilla

我正在使用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的参数,并发送如下这样的数据:

enter image description here

为此,我在角度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可以完美地工作。

如何解决此请求?

谢谢

0 个答案:

没有答案