仕事
Bluemix でホストされている Kitura サーバーで CORS を有効にします。
開発マシン
OS X 10.12.1、Swift バージョン 3.0.2。
Ubuntu 14.04、Swift 3.0.1 にデプロイされました。
コード
IBM のミドルウェアを使用してKitura-CORSCORS を有効にしています。
.Package(url: "https://github.com/IBM-Swift/Kitura-CORS", majorVersion: 1, minor: 4)
アプリを構成した方法は次のとおりです。
let options = Options(allowedOrigin: .all, credentials: true, exposedHeaders: ["X-Access-Token"])
let cors = CORS(options: options)
self.router.all(middleware: cors)
所見
Postman からの
OPTIONSリクエストhttps://adeptness.eu-gb.mybluemix.netは、次のヘッダーを返します。- 接続→キープアライブ
- コンテンツタイプ → text/html
- 日付 → 2016年12月21日(水) 19:12:04 GMT
- Transfer-Encoding → チャンク
- X-Backside-Transport → OK OK
- X-Global-Transaction-ID → 4203875359
アプリは、リクエストに対するCORS のテストでテストに合格し、次の公開された応答ヘッダーを報告します。
GEThttps://adeptness.eu-gb.mybluemix.net- コンテンツタイプ → text/html
問題
CORSが正しくセットアップされているかどうかは完全にはわかりません。調査結果 1 の応答にX-Access-Tokenヘッダーがないのはなぜですか?OPTIONS
私は CORS に関する Mozilla のドキュメントを読みましたが、サーバーによって明示的に許可されていない限り、ブラウザがプリフライト リクエストを実行し、すべての CORS リクエストをブロックすることは理解しています。私が見つけられなかったのは、「テスト」フロントエンドをモックアップすることなく CORS サーバー側をテストする方法に関するリソースでした。
CORS をテストするにはどうすればよいですか?