Ionic v4 с правдой - PullRequest
       28

Ionic v4 с правдой

0 голосов
/ 22 сентября 2019

API-вызов Ionic v1 работает с trueCredentials, но не работает ионный код v4, что дает мне ошибки контроля доступа

Код Ionic v1

vm.getUser = function (email, password) {
  return $http({
  method: 'POST',
   crossDomain: true,
  dataType: "json",
  url: 'http://localhost:3000/api/login/1',
  contentType: "application/json",
  xhrFields: {
    withCredentials: true
  },
  data: {"email": email, "password": password}
});
 };

** работает **

 getUser(){
this.http.post(this.url, 
 {"email": email,      "password": password},
{headers:{Content-Type:'application/json'}, withCredentials:true});

Не работает

1 Ответ

1 голос
/ 22 сентября 2019

Https not http

Вы должны использовать https для своего URL, если он поддерживает его, иначе он не будет работать на современных устройствах Android.

Они начали блокировать его несколько версий назад, если вы не добавите дополнительные параметры безопасности, чтобы разрешить его.

Ошибка CORS

Это связано с тем, что Ionic 4 использует другой, более современный,WebView.У него есть много преимуществ, но есть одна проблема, заключающаяся в том, что само веб-представление обеспечивает реализацию CORS.

Решение, однако, не входит в ваше приложение.Вам нужно изменить сервер, на котором работает API, для этого нужно разрешить политику cors.

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

Можете ли вы избежать CORS?

Прочитайте документы здесь :

Веб-представления принудительно применяют CORSпоэтому важно, чтобы внешние сервисы правильно обрабатывали запросы между источниками.См. Enable-cors.org и MDN для получения дополнительной информации.

Если CORS не реализован на сервере, существует собственный плагин, который выполняет HTTP-запросы на собственном уровне, который обходит CORS.

...