javascript - 在 Internet Explorer 中获取?

标签 javascript fetch es6-promise babeljs

以下代码在 IE 上根本不起作用。

fetch("{{{LINK TO API}}}", {
    headers: {
        "Accept": "application/json",
        "Content-Type": "application/json"
    }
})
    .then(resp => resp.json())
    .then(function(json) {
        // SET VARIABLES
        var seller = json.sellers[Math.floor(Math.random() * Math.floor(json.sellers.length))];
        
        // INSERT COMPANY LOGO
        companyLogo.src = json.logo_url;

        // INSERT SELLER PROFILES
        document.querySelectorAll("[data-seller-profile]").forEach(wrapper => {
            var innerHTML = "";
            innerHTML += "<img class='hbba-profile-img' src='" + seller.profile_image + "'>";
            innerHTML += "<div class='hbba-desc-wrapper'>";
            innerHTML += "<span class='hbba-desc-name'>" + seller.name + "</span>";
            innerHTML += "<span class='hbba-desc-title'>" + seller.job_title + "</span>";
            innerHTML += "</div>";
            innerHTML += "<div class='hbba-is-active'></div>";
            wrapper.innerHTML = innerHTML;
        });
    });

该代码位于 Webpack 环境中,并符合 @babel/preset-env 以及 @babel/polyfill 作为 entry: ["@babel/polyfill", "./src/main.js"], .

编译代码:fetch("https://helpbox-by-avense.se/api/company/1/init-info",{headers:{Accept:"application/json","Content-Type":"application/json"}}).then(function(t){return t.json()}).then(function(t){var n=t.sellers[Math.floor(Math.random()*Math.floor(t.sellers.length))];u.src=t.logo_url,document.querySelectorAll("[data-seller-profile]").forEach(function(t){var e="";e+="<img class='hbba-profile-img' src='"+n.profile_image+"'>",e+="<div class='hbba-desc-wrapper'>",e+="<span class='hbba-desc-name'>"+n.name+"</span>",e+="<span class='hbba-desc-title'>"+n.job_title+"</span>",e+="</div>",e+="<div class='hbba-is-active'></div>",t.innerHTML=e})})

要使其在 IE 上运行,应该进行哪些更改?

最佳答案

你需要一个额外的fetchpolyfill,Babel不会为你polyfill它,也不会转译它。

https://github.com/github/fetch

此外,您的 .babelrc 中没有针对任何浏览器,因此请将其更改为

{
  "presets": [
    [ "@babel/preset-env", {
      "targets": {
        "browsers": [ "last 1 version", "ie >= 11" ],
        "node": "6.10",
        "esmodules": true
      }
    }]
  ],
  "plugins": ["@babel/plugin-proposal-object-rest-spread"]
}

关于javascript - 在 Internet Explorer 中获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56137702/

相关文章:

javascript - 如果我在大多数组件中使用它,对象破坏是否会使用更多内存?

java - JPA Hibernate - @ManyToOne 未正确获取

javascript - Fetch api 不发送 POST 数据

javascript - 如何在解决所有 javascript ES6 Promises 后运行

javascript - 初始化/onInit 函数后 Angular 属性变得未定义

.net - 当嵌入对象无法显示时如何显示一些文本?

fetch:能不能把参数传给服务器

javascript - Promise 和 Promise.all(array) 在数组完成之前执行

javascript - 使用 .then 注册消费函数

javascript - 从 Node.JS 向 DocuSign 发送请求时强制设置 TLS 版本 1.2