请求数据无法在Chrome,JavaScript和Contentful API之外的浏览器中使用

问题描述 投票:1回答:2

请求的数据适用于Chrome,但不适用于我拥有的任何其他浏览器。我不知道为什么。我也试过Firefox,Explorer,Edge。除产品购物车代码中的某些ID错误外无响应。

它适用于所有浏览器如果我注释掉let cartItem = {... Storage.getProduct(id)如果没有注释掉,它会在其他浏览器中导致错误SyntaxError:无效属性id。如果这些行被注释掉,那么购物车中有未定义的产品,所以我正在研究解决方案。希望我找到一个。 `

 button.addEventListener("click", event => {
        event.target.innerText = "In Cart";
        event.target.disabled = true;
        // get product from products
        let cartItem = {
          ...Storage.getProduct(id),
          amount: 1
        };

`结果假设是在Chrome中发生的事情,它从产品的JSON输出数据。但除了我上面所述的上述响应之外,所有其他浏览器都没有显示产品或数据。您可以在Netlify上的所有浏览器中测试它。这里是进一步测试的链接:https://comfy1.netlify.com/

谢谢

javascript syntax fetch
2个回答
0
投票

rest / spread运算符完全兼容:

  • 绘图仪
  • 边缘17
  • 边缘18
  • Edge 19预览
  • FF 60 ESR
  • FF 65
  • FF 66
  • FF 67 beta
  • FF 68每晚
  • CH 72,OP 59
  • CH 73,OP 60
  • CH 74,OP 61
  • CH 75,OP 62
  • SF 12
  • SF 12.1
  • SF TP
  • WK
  • XS6
  • 节点> = 6.5 <7
  • 节点> = 8.10 <9
  • 节点> = 10.9 <11
  • 节点> = 11
  • GraalIVM 1.0
  • iOS 12
  • iOS 12.2
  • 三星8.2

还有一些部分兼容性。当您打算使用spread / rest操作符时,但通常情况下,任何ES 6功能,您都需要确保在正确的版本中对其进行测试。

这是版本支持表:https://kangax.github.io/compat-table/es6/

如果您需要支持旧浏览器,则可以使用转换器实现回退逻辑(比听起来更容易)。为此,BabelJS io是一个不错的选择:https://babeljs.io/

在这种情况下,您需要为旧版浏览器实现回退逻辑,因为您的代码未正确执行。如果您需要我们为您的旧版本编写回退逻辑,那么我们将需要有关Storage.getProduct(id)返回的更多信息。


0
投票

我使用的代码是不兼容的。绝对不适用于IE。下面的代码片段适用于旧版本的Firefox并与EDGE配合使用。适用于本地JSON以及外部源API。在本地机器,cPanel托管和Netlify上测试。

let cartItem = Storage.getProduct(id);
cartItem.amount = 1

感谢所有发布有关该问题的反馈的人。它指出了我正确的方向。

© www.soinside.com 2019 - 2024. All rights reserved.