Cordova 错误:标头值必须为字符串错误:高级http:标头值必须为字符串

Cordova 错误:标头值必须为字符串错误:高级http:标头值必须为字符串,cordova,ionic-framework,header,Cordova,Ionic Framework,Header,我想从API检索数据到ionic。首先,我面临CORS问题,无法从不同的设备(原始端口除外)检索数据。我试图使用http native来检索设备上的数据。我在从API获取标题时遇到问题。我不允许修改服务器。然而,我最终出现了如下错误:请指导我如何在ionic中使用http本机 (in promise): Error: advanced-http: header values must be strings Error: advanced-http: header values must be

我想从API检索数据到ionic。首先,我面临CORS问题,无法从不同的设备(原始端口除外)检索数据。我试图使用http native来检索设备上的数据。我在从API获取标题时遇到问题。我不允许修改服务器。然而,我最终出现了如下错误:请指导我如何在ionic中使用http本机

 (in promise): Error: advanced-http: header values must be strings
Error: advanced-http: header values must be strings

我已尝试使用以下代码:

login(username: String, password: String) {
    if(username === undefined || username === '' || password === undefined || password === null){
      presentAlert("No username or password", this.alertController);
      return;
    }

      this.mcs.mobileBackend.setAuthenticationType(this.mcs.AUTHENTICATION_TYPES.oauth);
      this.mcs.mobileBackend.authorization.authenticate(username, password).then(
        () => {
          console.log("Test");
          this.http.get(this.mcs.mobileBackend.getCustomCodeUrl(mcsConfig.environment + '_api_care/lovs?code_table_name=activity_code'), {}, {headers:careheader})
      .then(data => {

        console.log(data.status);
        console.log(data.data); // data received by server
        console.log(data.headers);

      })
      .catch(error => {

        console.log(error.status);
        console.log(error.error); // error message as string
        console.log(error.headers);

      });
 }
      ).then(() => {
        console.log('test2' + username + password);
        this.getUserRole();
        this.authenticationState.next(true);
      }).catch(err => {
        console.log(err,Headers);
        presentAlert(err, this.alertController);
      }); 

  }
getHeader(){
    let headers = new Headers();
    this.createAuthorizationHeader(headers);
    headers.append('Content-Type', 'application/json');
   }
getUserRole() {
    return this.http.get(this.mcs.mobileBackend.getPlatformUrl('users/me'), {},{ }).then(data => {
      console.log(data); console.log(data.headers);
    });
  }  
 getReportList(offset: number = 0, limit: number = mcsConfig.rowLimit) {
    let queryParam = '?offset=' + (offset * limit) + '&limit=' + limit;
    //return this.mcs.mobileBackend.customCode.invokeCustomCodeJSONRequest(mcsConfig.environment + '_api_care/my/incidents' + queryParam, 'GET', null);
    return this.http.get(this.mcs.mobileBackend.getCustomCodeUrl(mcsConfig.environment + '_api_care/my/incidents'+ queryParam), {},{headers: this.getMcsHeaders()});
    }

数据未显示。

下面是我的标题:

getMcsHeadersString() {
var cheaders = {};
for (let key in this.mcs.mobileBackend.getHttpHeaders()) {
  cheaders[key]= this.mcs.mobileBackend.getHttpHeaders()[key];
}
//console.log("STring_HeaderKey_"+cheaders['_keys']+"HeaderValue_"+cheaders['_values']);
delete cheaders['_keys'];
delete cheaders['_values'];
return cheaders;

}

你能让你的问题简洁明了吗?因为我使用的是本机http,它工作得很好,但你的问题有点难理解。@KhurshidAnsari我可以知道如何使用http本机it吗?我使用http native的方式正确吗?非常感谢。我认为您没有以字符串数据类型传递url。@KhurshidAnsari我的报告列表url不正确?它在port8100中工作。但不是在模拟器中。如何在字符串数据类型中传递url。谢谢