Как передать параметры через URL в угловых - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь передать параметры через URL-адрес с использованием углового метода Http Post, но получаю неизвестное исключение, например Http-ответ об ошибке (неизвестный URL-адрес): 0 Неизвестная ошибка , но она работает нормально в клиенте Postman.Где я сделал ошибку?ниже я делюсь ссылкой на stackbliz

https://stackblitz.com/edit/angular-http-client-1donxb?file=app/app.component.ts

Ответы [ 4 ]

0 голосов
/ 27 июня 2019
try to do like this.

routing path
    > {path: 'devicelog/:id/:device', component: DevicelogComponent}

    DevicelogComponent
    > this.router.navigate(['campaigns', name]);

    campaigns component

    >   this.route.params
        .subscribe(
        (params: Params) => {
        this.campId = params.name;
        if (params) {
        this.campName = params.name;
        if (this.campName) {
        this.singleCampaigns();
        }
        } else {
        this.campName = 'Sorry';
        }
        }
        );
0 голосов
/ 27 июня 2019

Проблема здесь в том, что вы пытаетесь получить доступ к ресурсу, который использует http, а stackblitz использует https. Браузеры блокируют загрузку содержимого http со страницы https.

См. https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content для объяснения. Вы можете увидеть эту ошибку, если откроете консоль разработчика в Firefox или Chrome (f12 или ctrl + shift + i), а затем снова нажмите кнопку загрузки данных.

Нет простого способа исправить это, кроме использования https api. Вы можете настроить https://ngrok.com/, чтобы получить безопасное соединение с вашим локальным API, или обслуживать локально https://cli.angular.io/ на http.

Тони Нго прав, передавая параметры в теле, намного чище передавать их как объект.

0 голосов
/ 27 июня 2019

Существует ли какой-либо сервер или файл, определенный для обработки этого URL? Невозможно проверить вашу ссылку на stackbliz, так как ваш IP есть, и вызов становится неудачным.

0 голосов
/ 27 июня 2019

Не рекомендуется добавлять учетные данные пользователя в URL, поэтому я немного изменяю ваш код следующим образом

  apiUrl = 'http://192.168.82.51:8080/touch-crm/users/signin';

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

      let body = {
        username: "admin",
        password: "admin"
      }

      return this.http.post(this.apiUrl, body, httpOptions).subscribe((res)=>{
        console.log(res);
      });      
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...