как передать параметры URL в запросе HTTP в угловых 4 - PullRequest
0 голосов
/ 09 мая 2018

Как оформить запрос путем передачи параметров? Я пробовал это, но получаю ошибку 404

getOrderbyOrderNo() {

        this.orderno = this.cookie_service.get('key');

        let headers = new Headers();
        headers.append('Content-Type', 'application/json');
        headers.append('orderno', this.orderno );
        let params = new URLSearchParams();
        params.append("someParamKey", this.orderno )

        return this.http.get('http://localhost:8080/View/orders', { headers: headers, params: params })


    }

выход

<code>ERROR 
Object { _body: "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot GET /View/orders
\ n \ n \ n ", статус: 404, ок: false, текст состояния:« не найден », заголовки: {…}, тип: 2, URL:« http://localhost:8080/View/orders"}

Ответы [ 5 ]

0 голосов
/ 09 мая 2018

Попробуйте это:

импортируйте эти пакеты в ваш класс:

import { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';

впрыскивать HttpClient как это:

constructor(private _http: HttpClient) {}

отправить запрос:

    let url = "your url";

    let Params = new HttpParams();
    Params = Params.append('param1', value1);
    Params = Params.append('param2', value2);

    let header: HttpHeaders = new HttpHeaders();
    header = header.append('Content-Type', 'text/plain');

    return this._http.get(url , { params: Params, headers: header })
        .map((response: Response) => {
        });
0 голосов
/ 09 мая 2018

Передача параметров и заголовков отличается от HttpClient, так как они неизменны. Если вы хотите передать параметр, вы должны использовать HttpParams. { params: new HttpParams().set('name', term) }

0 голосов
/ 09 мая 2018

вы можете передать параметры, как это:

return this.http.get('http://localhost:8080/View/orders?someParamKey=xyz&anotherParam=abc
', { headers: headers})
0 голосов
/ 09 мая 2018

если вы используете httpclient, вы должны сделать это

let params = new HttpParams();
params = Params.append('firstParameter', parameters.valueOne);
params = Params.append('secondParameter', parameters.valueTwo);
return this._HttpClient.get(`${API_URL}/api/logs`, { params: params })

или вы можете создать объект из параметров

export interface GetParams {
  firstParameter?: string;
  secondParameter?: string;
   ..more param you want 
} 


Const getParamsobj : GetParams = {
  firstParameter: 'value',
  secondParameter: 'value'
  ..other params
}
return this._HttpClient.get(`${API_URL}/api/logs`, { params: getParamsobj })
0 голосов
/ 09 мая 2018

IMO Есть два способа отправки параметров с помощью http-запроса.

  1. Добавляя его к URL-адресу, как это -

    return this.http.get('http://localhost:8080/View/orders/'+this.orderno, { headers: headers  })
    
  2. Другой способ: если вы используете httpclient, вы можете отправлять параметры в таких опциях, как эта-

     let httpParams = new HttpParams()
        .set('orderno', this.orderno);
    

Подробнее об этом читайте здесь

В типе запроса get нет части тела запроса, поэтому вы должны добавить свои параметры в ваш URL, т.е. в параметры или параметры запроса. или используя второй способ в настройках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...