Как я могу преобразовать этот запрос Ajax в запрос клиента http в Angular 8? - PullRequest
0 голосов
/ 13 марта 2020

У меня есть запрос в ajax, например:

  var data = {
    REQUEST: 'GetFeatureInfo',
    SERVICE: 'WMS',
    VERSION: '1.1.1',
    LAYERS: layerName,
    STYLES: '',
    FORMAT: 'image/png',
    INFO_FORMAT:'application/json',
    BGCOLOR: '0xFFFFFF',
    TRANSPARENT: 'TRUE',
    SRS: 'EPSG:' + mapSRID,
    BBOX: xmin + "," + ymin + "," + xmax + "," + ymax,
    WIDTH: map.width,
    HEIGHT: map.height,
    QUERY_LAYERS: layerName,
    X: screenPoint.x.toFixed(0),
    Y: screenPoint.y.toFixed(0)
  };
  $.ajax({
    type: 'GET',
    url: url,
    data: data,
    dataType: "application/json",
    complete: function (data) {
      callBack(data);
    }
  });
}

Я хочу преобразовать в angular с помощью http-метода get клиента. Как я могу это сделать.

Мое решение, но ответ: хорошо: ложь

  getInfo() {
    const params = {
      SERVICE: 'WMS',
      VERSION: '1.1.1',
      ...
    };

    this.http.get<any>('http://localhost:8080/geoserver/topp/wms', params).subscribe(data => {
      console.log(data);
    });
  }

Ответ: status: 200 statusText: "OK" url: "http://localhost: 8080 / Geoserver / TOPP / WMS SERVICE = WMS & VERSION = 1.1.1 & Equest = GetFeatureInfo & FORMAT = изображение / PNG & ПРОЗРАЧНЫЙ = истина & QUERY_LAYERS = TOPP: состояния и LAYERS = TOPP: состояния и исключения = применение / vnd.og c .se_inimage & INFO_FORMAT = текст / html & FEATURE_COUNT = 50 & X = 50 & Y = 50 & SRS = EPSG: 4326 & STYLES = & WIDTH = 101 & HEIGHT = 101 & BBOX = -113.8623046875,42.4072265625, -104.9853515625,51.2841796875"ok: false

Для большей ясности, я хочу преобразовать URL, чтобы получить запрос запрос метода get клиента в Angular 8:

http://localhost: 8080 / геосервер / wms? service = wms & version = 1.1.1 & request = GetCapabilities

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

В ваших данных у вас есть EQUEST вместо REQUEST

0 голосов
/ 13 марта 2020

Добавьте HttpClient в ваш сервис.

this.http.post(url , data).subscribe(response => {
 console.log(response);
}) //post request if you have to send data

this.http.get(url).subscribe(response => {
 console.log(response);
})//get if you want data

Ajax добавьте данные, отправленные вами вместе с запросом, в строку URL. Таким образом, чтобы сделать это с помощью angular, вам нужно использовать HttpParams

let params = new HttpParams().set("paramName",paramValue).set("paramName2", paramValue2); //Create new HttpParams

this.http.get(url, {headers: headers, params: params});
...