【问题标题】:Ionic 4: Setting native http post headers properlyIonic 4:正确设置本机 http 帖子标头
【发布时间】:2020-02-17 22:10:25
【问题描述】:

我正在努力寻找离子原生 http 问题的解决方案。

我尝试了post 的答案,但我仍然遇到同样的错误

这是我的代码

switchToggle(){

   let url = 'https://io.adafruit.com//api/v2/myusername/feeds/my-feed-id/data/';

   const headers = new Headers();
   headers.set("Content-Type", "application/json")
   headers.set("X-AIO-Key", "PASTED_MY_KEY_HERE");

   let data = {
            "datum":{
              "value" : 1
            }
          };
   this.http.setDataSerializer('json');

   this.http.post(url,data,{headers:headers})
   .then(data => {
       console.log(data);
   }).catch(error => {
     console.log(error)
   });
}

这是我得到的错误

当我尝试其他没有标题的发布请求时,它工作正常。但是对于这个特定的 API,我需要将请求与标头一起发送。

【问题讨论】:

    标签: ionic-framework http-headers ionic-native-http


    【解决方案1】:

    这样设置你的标题 =>

      setHeaders() {
        let headers = new Headers();
        headers.append("X-AIO-Key", "PASTED_MY_KEY_HERE");
        headers.append('Content-Type', 'application/json' );
    
            const requestOptions = new RequestOptions({ headers: headers });
            return requestOptions;
          }
    
      switchToggle(): Observable<any>{
              let data = {
                "datum":{
                  "value" : 1
                }
              };
             return this.http.post(url, data, this.setHeaders())
           .map(Response => Response.json())
              .catch((error: any) => Observable.throw(error.json().error || 'Server error'));
      }
    

    【讨论】: