SwiftベースのWebフレームワークVapor 2.0ドキュメント(翻訳)HTTP-CORS

3096 ワード

転載は原文のリンクを添付してください.http://blog.fandong.me/2017/08/21/iOS-SwiftVaporWeb28/
前言
以前はずっとJavaバックグラウンドの开発の兴味を持っていましたが、多くのJavaチュートリアルを见たいと思って、iOS开発者として、私は放弃して、后で友达の韩云智VLからこのフレームワークを知って、意外にもSwiftで书いたので、それは私の兴味を燃やしたと言わざるを得ません.VaporはSwiftに基づいて開発されたサービス・エンド・フレームワークで、iOS、Mac OS、Ubuntuで動作します.Swiftがサーバに配備されるように、ECSのサーバシステムをUbuntu 16.04に変更しました.
Vapor 2.0-ドキュメントディレクトリの次のテキストはVapor Docs/HTTP/CoRSから翻訳されています.
CORS
デフォルトでは、Vaporは、CORSMiddlewareミドルウェアCORS-Cross-ORigin Resource Sharingというソースコードリソース共有(CORS-Cross-ORigin Resource Sharing)を実現するためのプラットフォーム間でオープンソースへのアクセス仕様を提供しています.パブリックコンテンツを提供する場合は、CORSを使用して汎用JavaScriptブラウザへのアクセスを開くことを考慮してください.http://enable-cors.org/ミドルウェアの詳細については、ドキュメントのミドルウェア章を参照してください.
画像の作者:ウィキペディア
きそ
まず、CORSミドルウェアをDropletミドルウェア配列に追加します.
Config/droplet.json
{
    ...,
    "middleware": [
        ...,
        "cors",
        ...,
    ],
    ...,
}

次にアプリケーションを起動すると、Config/cors.jsonファイルを追加するよう求められます.
Config/cors.json
{
    "allowedOrigin": "*",
    "allowedMethods": ["GET", "POST", "PUT", "OPTIONS", "DELETE", "PATCH"],
    "allowedHeaders": [
       "Accept",
       "Authorization",
       "Content-Type",
       "Origin",
       "X-Requested-With"
    ]
}

ノートは、他のミドルウェアを投げ出す前にCORSミドルウェアを挿入し、AbortMiddlewareなどを考えていることを確認します.そうしないと、正しいリクエストヘッダが応答に追加されない可能性があります.CORSMiddlewareは、ほとんどのユーザに適したデフォルト構成を有し、これらの値は以下のようになる.
  • オリジナルの
  • を許可
  • リクエストの元のリクエストヘッダ
  • で許可する方法
  • GET , POST , PUT , OPTIONS , DELETE , PATCH
  • が許可する要求ヘッダ
  • Accept , Authorization , Content-Type , Origin , X-Requested-With

  • 上級
    高级ユーザーはすべての设定とプリセットをカスタマイズすることができて、2つの方法があって、プログラミングの方式を通じてCORSConfigurationファイルを作成して配置することができて、あなたの配置をVaporのJSONプロファイルに入れることができます.以下の2つの方法を见てみましょう.
    コンフィギュレーションCORSConfiguration構造体はCORS を構成するために使用されます.このようにして初期化することができます.
    let config = try Config()
    config.addConfigurable(middleware: { config in
        return CORSConfiguration(
            allowedOrigin: .custom("https://vapor.codes"),
            allowedMethods: [.get, .post, .options],
            allowedHeaders: ["Accept", "Authorization"],
            allowCredentials: false,
            cacheExpiration: 600,
            exposedHeaders: ["Cache-Control", "Content-Language"]
        )
    }, name: "custom-cors")
    

    そしてcustom-corsをあなたのDropletのミドルウェアの配列に設定します.
    Config/droplet.json
    
    {
        ...,
        "middleware": [
            ...,
            "custom-cors",
            ...,
        ],
        ...,
    }
    

    メモCORSConfigurationの使用可能な値の設定については、ソースコードのドキュメントを参照してください.