CORS 是 Web 上的一种标准机制,它使来自 Web 应用程序的跨域请求能够到达不同域上的服务器。 cross original 请求也可以被认为是 cross domain 请求。 只要响应中没有所需的 HTTP 标头,浏览器就会阻止跨域请求。

响应标头由服务器指定,这就是为什么必须设置服务器以生成正确的标头。 在 SAP Commerce Cloud 后端,可以使用 CorsFilter 以通用方式配置这些标头。 Project properties 可用于为每个节点配置此项,或者 ImpEx 安装脚本可用于安装到每个节点。

匿名同意功能需要 x-anonymous-consents 标头。 如果不使用匿名同意,则可以省略此配置。 但是,需要注意的是,如果您不包含此标头,则必须禁用匿名同意功能。 否则,您可能会遇到店面无法正常显示的问题。

allowCredentials

请求凭证与 cookie、授权标头或 TLS 客户端证书有关。这些默认情况下不允许在跨域请求中使用,这就是在未应用配置时请求被阻止的原因。

Spartacus 没有在 Spartacus 库的 1.x 版本中发送 cookie,但从 2.0 版本开始,将为每个 OCC 请求发送 cookie。这也已修补到 Spartacus 库的 1.4 和 1.5 版本。

需要发送 cookie 以获得 session affinity,也称为 sticky sessions. sticky sessions 意味着 API 端点后面的同一台服务器用于同一会话的所有后续请求。尽管 Commerce API 是无状态的,但有时多个并行或顺序调用可能会失败。例如,“添加到购物车”请求后跟“加载购物车”请求可能会失败,因为第一个请求可能会在服务器 1 上结束,而紧随其后的第二个请求可能会在服务器 2 上结束。服务器可能不足以快速发送缓存失效,这就是第二个响应可能无法捕获添加的项目的原因。

sticky sessions 的另一个优点是,如果同一会话的请求由同一台服务器提供服务,则后端将获得性能改进。

出于这个原因,CCv2 公开了一个响应 cookie (ROUTE),它指示用于处理 API 请求的处理服务器。每当客户端将此 cookie 添加到下一个请求中时,该请求都由同一服务器处理。

  • 在部署期间使用配置属性 - configuration properties 安装它们
  • 在部署期间使用 Commerce Cloud nanifest 文件安装它们
  • 使用 ImpEx 脚本在运行时安装它们
  • 使用 Backoffice 在运行时手动配置它们

注意

  • OCC 由名为 commercewebservices 的模板扩展安装。 但是,可以重命名扩展 Web 应用程序路径,或从中生成自定义扩展。 在下一部分的示例中,我们假设名称为 commercewebservices,但如果有自定义名称,则应替换它。

  • 大多数配置仅适用于 OCC,但如果您使用其他 API(例如 Assisted Service Module),还需要为这些 API 配置 CORS。

  • 如果使用的是 SAP Commerce Cloud 版本 1905 或更早版本,则必须使用 ycommercewebservices(或自定义扩展名)而不是 commercewebservices。 如果使用的是 SAP Commerce Cloud 2005 或更高版本,则可以选择使用 commercewebservices 或 ycommercewebservices,但默认为 commercewebservices,由 cx 配方定义。

SAP 电商云 Spartacus UI 的 CORS 设置相关推荐

  1. SAP 电商云 Spartacus UI 产品搜索结果的设计明细

    我们使用如下 url 访问 SAP 电商云 Spartacus UI 产品搜索页面: http://localhost:4000/electronics-spa/en/USD/search/sony ...

  2. Mobile first 设计思路在 SAP 电商云 Spartacus UI 中的设计体现一例

    关于 Mobile First 的概念,请查看我这篇文章:什么是前端开发中的 mobile first 策略. 下图是 SAP 电商云 Spartacus UI 的搜索结果页面: 其布局设计:temp ...

  3. SAP 电商云 Spartacus UI ComponentDataProvider defer 工厂函数

    为什么 this.componentService.getItems 最后就触发到 Component-data.provider.ts 工厂函数的执行了? 29行的 getService: getS ...

  4. SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改

    我们知道在 SAP 电商云 Spartacus UI 里,用户可以通过下拉菜单更改当前访问 site 的语言: 监控语言变化的代码: this.subscription.add(this.langua ...

  5. 在 SAP 电商云 Spartacus UI 里手动注入 module 的几种排列组合

    先把所有的排列组合罗列如下: (1) 通过构造函数注入 QuickOrderFacade,但不调用其方法 (2) 通过构造函数注入 QuickOrderFacade,调用其方法 (3) 手动通过 in ...

  6. SAP 电商云 Spartacus UI Proxy Facade 的一个实际例子

    如何理解 SAP 电商云 Spartacus UI 中的 proxy facade? Jerry 这篇文章什么是 SAP 电商云 Spartacus UI 的 proxy façade提供了理论上的解 ...

  7. SAP 电商云 Spartacus UI Quick Order 主页的实现

    存货单位(英語:stock keeping unit,SKU/ˌɛsˌkeɪˈjuː/),也翻译为库存单元,是一個會計學名詞,定义为库存管理中的最小可用单元,例如纺织品中一个SKU通常表示规格.颜色. ...

  8. SAP 电商云 Spartacus UI 从 CMS 取回 slots 和 component 之后的处理

    从前一篇文章SAP 电商云 Spartacus UI 的双重 layout 配置层设计 我们得知,Spartacus 层面的 layout-config.ts 可以控制 page template 应 ...

  9. SAP 电商云 Spartacus UI 产品明细页面路由路径的自定义配置

    如下图所示,为了减少 SAP 电商云 Spartacus 客户实施时不必要的配置,Spartacus 将不少页面的路由路径的默认配置,定义在如下的 default-routing-config.ts ...

最新文章

  1. 在Windows下使用MinGW静态编译Assimp
  2. 我对观察者模式的理解,之前一直很乱
  3. 输出一个数的二进制序列中1的个数(三种方法)
  4. 音乐平台项目的几个问题总结(头像裁剪以及跨页面播放音乐)
  5. 6款Windows超好用的ZIP密码解锁软件
  6. 没了Ghost,系统也能“雨过天晴”了
  7. 计算机学院特色迎新标语,有创意的迎新,计算机学院用代码写迎新条幅,学弟学妹表示一脸懵...
  8. Codeforces 1398 F. Controversial Rounds —— 线段树+dp
  9. 《左手数据,右手图表》
  10. 维瓦尔第协奏曲《四季》赏析 (Antonio Vavildi 《The Four Seasons》)
  11. 怎么一次性给多段视频制作画中画,并进行智能合并
  12. HZNU2509 曲院风荷——折半搜索
  13. centos开机启动后只是一条横杠
  14. git 拉取远程分支到本地的简便方法
  15. js实现绑定多个按钮并当点击某个按钮时改按钮颜色改变
  16. 金山打字通语句练习的文本
  17. Kernel API(一)writeb(), writew(), writel(),readb(), readw(), readl()
  18. MySQl 面试重点_2.常见的索引面试题总结
  19. qt使用消息队列服务器,qt代码实现消息队列通信
  20. Java操作Excel的两种方式(详细)

热门文章

  1. 原生Aajax 和jQuery Ajax 写法个人总结(简单)
  2. 国内视频云市场转入整合阶段
  3. 《Debug Hacks》和调试技巧【转】
  4. 《一》php多进程编程:第一次fork
  5. Mysql配置优化浅谈
  6. 新手学linux之-----------memroy.c
  7. 使用hotnode自动更新脚本(热发布)
  8. 批量部署虚拟机实战解析
  9. initialization of 'XXX' is skipped by 'case' label
  10. 自己有電腦的一定要看看,非常有用呢。