基于Swift的Web框架Vapor2.0文檔(翻譯)HTTP-CORS

轉(zhuǎn)載請附原文鏈接:http://blog.fandong.me/2017/08/21/iOS-SwiftVaporWeb28/

前言

之前一直有做Java后臺(tái)開發(fā)的興趣,可是想到要看好多的Java教程,作為一個(gè)iOS開發(fā)者,我放棄了,
后來從朋友韓云智VL那里知道了這個(gè)框架,竟是用Swift寫的,不得不說,它燃起了我的興趣。
Vapor是一個(gè)基于Swift開發(fā)的服務(wù)端框架,可以工作于iOS,Mac OS,Ubuntu。
為了配合Swift部署到服務(wù)器,我把ECS的服務(wù)器系統(tǒng)改為Ubuntu16.04。

Vapor 2.0 - 文檔目錄
以下文字翻譯自Vapor Docs/HTTP/CORS

CORS

默認(rèn)情況下,Vapor提供了一個(gè)實(shí)現(xiàn)源代碼資源共享(CORS - Cross-ORigin Resource Sharing)叫CORSMiddleware中間件
CORS - Cross-ORigin Resource Sharing是一種能夠跨平臺(tái)的開源的訪問規(guī)范,如果你提供公共內(nèi)容,請考慮使用CORS打開通用的JavaScript瀏覽器訪問,http://enable-cors.org/
想要了解更多關(guān)于中間件的信息,請?jiān)L問文檔中的 中間件章節(jié)


圖片作者:維基百科

基礎(chǔ)

首先,添加CORS中間件到你的Droplet中間件數(shù)組中.

Config/droplet.json
{
    ...,
    "middleware": [
        ...,
        "cors",
        ...,
    ],
    ...,
}

下次你啟動(dòng)你的應(yīng)用程序的時(shí)候,系統(tǒng)將提示你添加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或類似的,否則,正確的請求頭可能不會(huì)添加到響應(yīng)中.

CORSMiddleware具有適合絕大多數(shù)用戶的默認(rèn)配置,它們的值像下面這樣

  • 允許原始的
  • 請求中的原始請求頭
  • 允許的方法
  • GET,POST,PUT,OPTIONS,DELETE,PATCH
  • 允許的請求頭
  • Accept,Authorization,Content-Type,Origin,X-Requested-With

高級(jí)

高級(jí)用戶可以自定義所有的設(shè)置和預(yù)設(shè),有兩種方法,可以通過編程方式創(chuàng)建和配置CORSConfiguration文件,也可以將你的配置放入Vapor的JSON配置文件.
看看如下的設(shè)置的兩種方法.

配置

CORSConfiguration結(jié)構(gòu)體用于配置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")

然后設(shè)置custom-cors到你的Droplet的中間件數(shù)組.

Config/droplet.json
{
    ...,
    "middleware": [
        ...,
        "custom-cors",
        ...,
    ],
    ...,
}

筆記
有關(guān)設(shè)置CORSConfiguration可用值的更多信息,請參閱源代碼中的文檔.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容