Вызов API REST в ионном режиме

У меня проблемы с выполнением вызовов REST API в моем ионном приложении на мой сервер. Это показывает следующую ошибку.

ionic.bundle.js: 25005 ОПЦИИ https://website.com/api/ionic_test 406 (Недопустимо)

XMLHttpRequest не может загрузить https://website.com/api/ionic_test. Ответ на предпечатную проверку имеет недопустимый код состояния HTTP 406

Код вызова API.

$http.post(API_ENDPOINT.url + '/ionic_test', user).then(function(result) {
                    if (result.data.status) {
                        storeUserCredentials(result.data.token);
                        resolve(result.data.msg);
                    } else {
                        reject(result.data.msg);
                    }
                });

ionic.config.json

{
  "name": "adminPanel",
  "app_id": "",
  "proxies": [
    {
      "path": "/api",
      "proxyUrl": "http://website.com/api"
    }
  ]
}

2 ответа

Проблема с вашим сервером. В комментариях вы сказали, что API работает в браузере, но не в вашем приложении. Это потому, что ваш браузер не отправляет OPTIONS "предполетный" запрос, который делает Ionic.

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

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

$httpProvider.defaults.headers.common = {};
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.patch = {};

Например.

angular.module('yourApp', [])

.config(function ($stateProvider, $httpProvider, $urlRouterProvider) {

    //To solve Response for preflight has invalid HTTP 
    $httpProvider.defaults.headers.common = {};
    $httpProvider.defaults.headers.post = {};
    $httpProvider.defaults.headers.put = {};
    $httpProvider.defaults.headers.patch = {};


    //--------------------------------------

    // your routes here
});

Другие вопросы по тегам