首页 > 解决方案 > Ionic 4:正确设置本机 http 帖子标头

问题描述

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

我尝试了这篇文章的答案,但我仍然遇到同样的错误

这是我的代码

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-frameworkhttp-headersionic-native-http

解决方案


像这样设置你的标题=>

  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'));
  }

推荐阅读