2017-01-31 4 views
0

私のイオンアプリケーションでREST APIコールをサーバーに送信できません。次のエラーが表示されます。REST APIコールインイオン

ionic.bundle.js:25005のOPTIONS https://website.com/api/ionic_test 406(許容できない)

のXMLHttpRequestがhttps://website.com/api/ionic_testをロードすることはできません。プリフライトの応答に無効なHTTPステータスコードがあります406

APIコールコード

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

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

はすでにこれにかなりの数の質問と回答があり、CORSを見上げます。 – Claies

+0

実際、 'No 'Access-Control-Allow-Origin'ヘッダのある質問は2,817件あります。" http://stackoverflow.com/search?q=No+%27Access-Control-Allow-Origin%27+header+is + present " – Claies

+0

@Claies私は多くの同様の質問をしました。 CORSを有効にするとこのエラーが表示されます。質問は編集されました –

答えて

1

ionic.config.json

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

問題は、サーバーにあります。コメントでは、APIはブラウザでは動作しますが、アプリでは動作しないと言いました。これは、ブラウザがOPTIONS "プリフライト"リクエストを送信しないためです。これはIonicが行います。

disable the preflight requestのいずれかを使用するか、サーバーを適切に処理するように構成する必要があります。

0

は、プリフライト問題

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

例えば解決するために、アプリの設定でこれらを使用してください。