2017-12-22 21 views
0

私はイオンに慣れていないので、さまざまな環境のプロキシ設定をセットアップしようとしています。私はwebpackとイオンが提供される前に設定されている環境変数を使って読み込まれる、いくつかの環境固有の設定ファイルを用意しています(https://github.com/gshigeto/ionic-environment-variables参照)。期待されるが、私は次の問題を解決する方法がわからないよう異なる環境用のIonicプロキシ設定

すべてが動作します:

"proxies": [ 
    { 
     "path": "/api", 
     "proxyUrl": "https://dv.mydomain.com/api", 
     "rejectUnauthorized": false 
    } 
    ] 

と私のHTTP呼び出しの1のようになります。 私のプロキシ設定(ionic.config.json)はこのようになりますこの:

return this.http.get<User[]>(ENV.apiUrl + '/api/users') 

そうでない場合は、プロキシの設定で指定されたパターンがマッチしませんので、私はENV.apiUrlを削除する必要がありますが、私はそうするならば、私はもう異なる環境間で区別することはできません。私はドメインをプロキシ設定のパスに追加しようとしましたが、これはうまくいきませんでした。

この問題を解決する方法はありますか? 私はイオンフォーラムで同じ質問をしましたが、これまで誰も回答していませんでした。

+0

ENV.apiUrlに関する情報を追加できますか? –

+0

確かです。最初の段落のリンクをクリックしてください。readmeは、どこから来たのか、それが何であり、なぜ必要なのかを説明しています。私のアプリケーションは、3つのテスト環境と1つの生産的環境と通信します。 – Daniel

答えて

0

これまでのところ私が "解決した"方法は、もはやイオン性のプロキシーを使用しないことです。 this plugin for chromeをインストールしました。これは基本的に、Access-Control-Allow-Origin:*をレスポンスヘッダーに追加することで、クロームのCORS保護を無効にします。

0

apiUrlをURLパスコンポーネントにすることはできませんか?例:

// environment.pro.ts 
export const environment: any = { 
    apiUrl: '/pro' 
}; 

// environment.dev.ts 
export const environment: any = { 
    apiUrl: '/dev' 
}; 

その後、何かのように:イオンは、地域の開発効率向上のために、ブラウザを使用して

// ionic.config.json 
"proxies": [ 
    { 
    "path": "/pro/api", 
    "proxyUrl": "https://example.com/api", 
    "rejectUnauthorized": false 
    }, 
    { 
    "path": "/dev/api", 
    "proxyUrl": "https://dev.example.com/api", 
    "rejectUnauthorized": false 
    } 
] 
+0

私にとっては不可能ですが、それは当然のことでしたが、問題ではありませんでした。私の下の答えをお読みください。それが解決できる方法です。 – Daniel

0

CORSの問題は、ローカルの開発に固有のものになります。 すべてのjavascriptはファイルとしてコピーされます:// したがって、起源は存在しません。だから、これはあなたがこの問題を解決する必要がありクローム拡張子 https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

をインストールすることができます処理するため

+0

私はすでに2週間前に同じ答えを出しました(下記参照) – Daniel