SAP 电商云 Spartacus UI 的 CORS 设置
CORS 是 Web 上的一種標(biāo)準(zhǔn)機(jī)制,它使來自 Web 應(yīng)用程序的跨域請(qǐng)求能夠到達(dá)不同域上的服務(wù)器。 cross original 請(qǐng)求也可以被認(rèn)為是 cross domain 請(qǐng)求。 只要響應(yīng)中沒有所需的 HTTP 標(biāo)頭,瀏覽器就會(huì)阻止跨域請(qǐng)求。
響應(yīng)標(biāo)頭由服務(wù)器指定,這就是為什么必須設(shè)置服務(wù)器以生成正確的標(biāo)頭。 在 SAP Commerce Cloud 后端,可以使用 CorsFilter 以通用方式配置這些標(biāo)頭。 Project properties 可用于為每個(gè)節(jié)點(diǎn)配置此項(xiàng),或者 ImpEx 安裝腳本可用于安裝到每個(gè)節(jié)點(diǎn)。
匿名同意功能需要 x-anonymous-consents 標(biāo)頭。 如果不使用匿名同意,則可以省略此配置。 但是,需要注意的是,如果您不包含此標(biāo)頭,則必須禁用匿名同意功能。 否則,您可能會(huì)遇到店面無法正常顯示的問題。
allowCredentials
請(qǐng)求憑證與 cookie、授權(quán)標(biāo)頭或 TLS 客戶端證書有關(guān)。這些默認(rèn)情況下不允許在跨域請(qǐng)求中使用,這就是在未應(yīng)用配置時(shí)請(qǐng)求被阻止的原因。
Spartacus 沒有在 Spartacus 庫的 1.x 版本中發(fā)送 cookie,但從 2.0 版本開始,將為每個(gè) OCC 請(qǐng)求發(fā)送 cookie。這也已修補(bǔ)到 Spartacus 庫的 1.4 和 1.5 版本。
需要發(fā)送 cookie 以獲得 session affinity,也稱為 sticky sessions. sticky sessions 意味著 API 端點(diǎn)后面的同一臺(tái)服務(wù)器用于同一會(huì)話的所有后續(xù)請(qǐng)求。盡管 Commerce API 是無狀態(tài)的,但有時(shí)多個(gè)并行或順序調(diào)用可能會(huì)失敗。例如,“添加到購物車”請(qǐng)求后跟“加載購物車”請(qǐng)求可能會(huì)失敗,因?yàn)榈谝粋€(gè)請(qǐng)求可能會(huì)在服務(wù)器 1 上結(jié)束,而緊隨其后的第二個(gè)請(qǐng)求可能會(huì)在服務(wù)器 2 上結(jié)束。服務(wù)器可能不足以快速發(fā)送緩存失效,這就是第二個(gè)響應(yīng)可能無法捕獲添加的項(xiàng)目的原因。
sticky sessions 的另一個(gè)優(yōu)點(diǎn)是,如果同一會(huì)話的請(qǐng)求由同一臺(tái)服務(wù)器提供服務(wù),則后端將獲得性能改進(jìn)。
出于這個(gè)原因,CCv2 公開了一個(gè)響應(yīng) cookie (ROUTE),它指示用于處理 API 請(qǐng)求的處理服務(wù)器。每當(dāng)客戶端將此 cookie 添加到下一個(gè)請(qǐng)求中時(shí),該請(qǐng)求都由同一服務(wù)器處理。
- 在部署期間使用配置屬性 - configuration properties 安裝它們
- 在部署期間使用 Commerce Cloud nanifest 文件安裝它們
- 使用 ImpEx 腳本在運(yùn)行時(shí)安裝它們
- 使用 Backoffice 在運(yùn)行時(shí)手動(dòng)配置它們
注意
-
OCC 由名為 commercewebservices 的模板擴(kuò)展安裝。 但是,可以重命名擴(kuò)展 Web 應(yīng)用程序路徑,或從中生成自定義擴(kuò)展。 在下一部分的示例中,我們假設(shè)名稱為 commercewebservices,但如果有自定義名稱,則應(yīng)替換它。
-
大多數(shù)配置僅適用于 OCC,但如果您使用其他 API(例如 Assisted Service Module),還需要為這些 API 配置 CORS。
-
如果使用的是 SAP Commerce Cloud 版本 1905 或更早版本,則必須使用 ycommercewebservices(或自定義擴(kuò)展名)而不是 commercewebservices。 如果使用的是 SAP Commerce Cloud 2005 或更高版本,則可以選擇使用 commercewebservices 或 ycommercewebservices,但默認(rèn)為 commercewebservices,由 cx 配方定義。
總結(jié)
以上是生活随笔為你收集整理的SAP 电商云 Spartacus UI 的 CORS 设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小度确认将发布智能手机:消息属实,敬请期
- 下一篇: 鸡兔同笼问题的一些巧解