2017-01-31 5 views
0

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

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" 
    } 
    ] 
} 
+0

посмотреть CORS, есть немало вопросов и ответов на это уже. – Claies

+0

на самом деле, есть 2887 вопросов с заголовком 'No 'Access-Control-Allow-Origin'' http://stackoverflow.com/search?q=No+%27Access-Control-Allow-Origin%27+header+is + present " – Claies

+0

@Claies Я прошел через многие подобные вопросы. что позволяет CORS дать мне эту ошибку. вопрос был отредактирован –

ответ

1

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

Вам необходимо либо disable the preflight request, либо настроить ваш сервер на правильное обращение с ним.

0

Используйте это в вашем приложении конфигурации для решения предполетной Issue

$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 
 
});