Hybris 从云中点击Spartacus店面URL时在浏览器控制台中获取CORS错误

Hybris 从云中点击Spartacus店面URL时在浏览器控制台中获取CORS错误,hybris,spartacus-storefront,Hybris,Spartacus Storefront,当我从云端访问spartacus storefront时,我得到以下错误:- CORS策略已阻止从源“”访问“”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源”标头。 electronics.cmlp705ek-wiprolimi1-d1-public.model-t.cc.commerce.ondemand.com/rest/v2/electronics/cms/pages?fields=DEFAULT&pageType=Conten

当我从云端访问spartacus storefront时,我得到以下错误:- CORS策略已阻止从源“”访问“”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源”标头。 electronics.cmlp705ek-wiprolimi1-d1-public.model-t.cc.commerce.ondemand.com/rest/v2/electronics/cms/pages?fields=DEFAULT&pageType=ContentPage&pagelabeloid=homepage&lang=en&curr=USD:1加载资源失败:net::ERR\u失败

CORS策略已阻止从源“”访问“”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源”标头。
GET net::ERR_失败了

我不知道店面的情况,但我在reactJS的项目中遇到了同样的问题。我通过添加前缀URL解决了这个问题

const proxyurl = "https://cors-anywhere.herokuapp.com/"
cosnt url = 'Your URL'
axios.get(proxyurl + url)

您需要使其适应您的项目。我想基本原理还是一样的。

您很可能需要在SAP Commerce云配置中调整CORS设置。请参见


如果你面对2005年商业云版本的问题。请尝试将app.module.ts文件中的rest替换为occ,因为在2005版中,ycommercewebservices扩展名被替换为commercewebservices extesnion,其中webroot为/occ,后者为webroot/rest。每当您看到CORS问题时,我始终建议首先在空白浏览器窗口中加载请求。此浏览器不需要CORS,如果响应成功,您知道需要修复CORS。然而,这通常不是CORS问题,这有助于您了解发生了什么

当我在单独的浏览器中加载时,很明显我们手头还有另一个问题。响应显示的是web应用程序响应(加速器),而不是API响应。OCC的所谓
baseUrl
似乎存在配置错误

这可能发生在ccv2设置中。我假设它在您的manifest.xml中。您需要检查设置时牢记以下几点:

  • Spartacus需要一个
    baseUrl
    来生成对OCC的所有请求。你可以
  • 可以在Spartacus中静态配置
    baseUrl
    ,但也可以使用
    occ后端基本url
    元标记将其注入ccv2。我想这就是你所做的,这是推荐的
  • CCv2部署了各种所谓的
    方面
    。每个方面可以包含平台的一个或多个应用程序。您可以在清单中配置方面
  • CCv2将在
    occ后端基本url
    meta标记中插入设置的API方面

我的假设是API方面存在错误配置。它可能不可用,或者可能没有OCC应用程序。

我已经添加了所有这些属性corsfilter.ycommercewebservices.allowedOrigins=corsfilter.ycommercewebservices.allowedMethods=GET HEAD选项补丁PUT PUT POST DELETE corsfilter.ycommercewebservices.allowedHeaders=源内容类型接受授权缓存控制(如果没有匹配您的javascript)现在没有在本地主机上运行:4200,是吗?因此,您需要更改AllowedOrigination以匹配它实际运行的位置,在您的情况下,它看起来是
https://jsapps.cmlp705ek-wiprolimi1-d1-public.model-t.cc.commerce.ondemand.com
我在manifest.json文件中的backoffice aspect会话下对其进行了相应的更改。但我还是犯了同样的错误。只是现在才意识到这是一篇老文章。我想太晚了。嗯,我希望它能帮助其他人;)