мой почтовый запрос не работает, кто-нибудь исправить меня здесь? - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь получить данные из бэкэнда по почте. Я пытаюсь следующее, но ошибка не работает.

Кто-нибудь может исправить мой пост, пожалуйста?

import { Injectable } from '@angular/core';
import { Http, Response, RequestOptions, Headers } from '@angular/http';

@Injectable()
export class ServerService {

  constructor(private http:Http) { }

    headers = new Headers();
    headers.append('Content-Type', 'application/json');

    postParam = {
        "clientId": "RETAIL",
        "spvParam": {
            "productCode": "PDO",
            "consigneeCountry": "MY",
            "salesOrgRef": "TH61",
            "salesOrgFacilityCode": "THBKK1",
            "salesOrgChnl": "eCommerce",
            "pickUpAcctRef": "5999999108",
            "facilityId": "MYKUL1"
        }
    }

    options = new RequestOptions({ headers: this.headers, body:this.postParam });


  getDataByPost(){
    alert('starts');
    let url = `http://mykullstc004004.apis.dhl.com:8003/efoms/getServiceProductV2`;
    this.http.post(url, {}, this.options ).subscribe(res => console.log( 'res', res ));
  }

}

UPDATE

import { Component, OnInit } from '@angular/core';
import { ServerService } from './shared/service/server.service';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {

    constructor(private server:ServerService){}

    ngOnInit(){
        this.server.getDataByPost();
    }

}

1 Ответ

0 голосов
/ 25 апреля 2018

, поскольку Per @cruelEngine Body должен быть вторым параметром вашего запроса, а не частью requestOptions, поэтому попробуйте свой код следующим образом:

@Injectable()
export class ServerService {
  postParam: any;
  options: any;

  constructor(private http:Http) {

    const headers = new Headers({'Content-Type' : 'application/json'});

    this.postParam = {
        "clientId": "RETAIL",
        "spvParam": {
            "productCode": "PDO",
            "consigneeCountry": "MY",
            "salesOrgRef": "TH61",
            "salesOrgFacilityCode": "THBKK1",
            "salesOrgChnl": "eCommerce",
            "pickUpAcctRef": "5999999108",
            "facilityId": "MYKUL1"
        }
    }

    this.options = new RequestOptions({ headers: this.headers });
  }

  getDataByPost(){
    alert('starts');
    let url = `http://mykullstc004004.apis.dhl.com:8003/efoms/getServiceProductV2`;
    this.http.post(url, JSON.stringify(this.postParam), this.options ).subscribe(res => console.log( 'res', res ));
  }

}
...