Ioni c 3 - Angular Сообщение с заголовками не работает - PullRequest
0 голосов
/ 04 августа 2020

Использование Ioni c 3 с angular 5.2.11.

Angular Сообщение с заголовками не работает

....
const header = {
        "headers": {
          "X-Custom-Header": "1",
          "X-Custom-Header2": "2"
        }
      };
...
const dt = {
  Username: this.username,
  Password: this.password
}
this.data = this.http.post('http://mydomain/json.php?f=test', JSON.stringify(dt), header);
this.data.subscribe(data => {
  this.testPass.push(data);
}, (error) => {
  this.testPass.push(error);
});

PHP бэкэнд:

header("Content-Type: text/html; charset=utf-8");
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: *');

if ($_GET["f"] == "test") {
    echo 1;
    die();
}

Без заголовка этот вызов работает. Моя цель - передать заголовки. Затем он складывается, и самое странное то, что я не получаю никаких ошибок. Есть мысли помочь мне?

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Проблема была в PHP:

Эта строка не принимается для Android ниже 8 и для пользовательских заголовков:

header('Access-Control-Allow-Headers: *');

Мне пришлось ввести свои значения вручную:

header("Content-Type: text/html; charset=utf-8");
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header("Access-Control-Allow-Headers: X-Requested-With, Content-Type, Origin, Cache-Control, Pragma, Authorization, Accept, Accept-Encoding, X-Custom-Header, X-Custom-Header2");
0 голосов
/ 04 августа 2020
const header = {
   "X-Custom-Header": "1",
   "X-Custom-Header2": "2"
}

const requestOptions = {                                                                                                                                                                                 
     headers: new Headers(header), 
};

getData() {
  return this.http.post(url, JSON.stringify(data), requestOptions);
}

Звоните из компонента:

this.yourServiceFile.getData().subscribe(res => {console.log(res); });

Другой способ:

let headers: HttpHeaders = new HttpHeaders();
headers = headers.append('X-Custom-Header', '1');
headers = headers.append('X-Custom-Header2', '2');

и передайте headers вашему запросу.

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