VUE CLI 3项目兼容IE浏览器

兼容性设置如下
在src/main.js中添加以下两行代码

import 'core-js/stable';
import 'regenerator-runtime/runtime';

在babel.config.js中,修改presets的值,修改后如下

module.exports = {
  presets: [
    // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
    ['XXX',{
      useBuiltIns: 'entry',
      polyfills: [
        'es.promise',
        'es.symbol'
      ]
    }]
  ]
}

在vue.config.js的chainWebpack方法中添加以下代码,根据项目实际引用的与IE不兼容的js库添加include

    config.module.rule("elementUI").test(/\.js$/)
      .include
      .add(resolve('src'))
      .add(resolve('test'))
      .add(resolve('./node_modules/element-ui/src'))
      .add(resolve('./node_modules/element-ui/packages'))
      .end().use("babel-loader").loader("babel-loader").end();
Vue 3 中,如果你遇到在 IE 浏览器中使用 `iframe` 的跨域跳转问题,这是因为 IE 浏览器对于同源策略 (Same-Origin Policy) 更为严格,尤其是对于跨域请求。Vue 本身并不直接处理这个问题,但你可以尝试以下几种方法来解决: 1. **CORS(Cross-Origin Resource Sharing)**: - 确保后端服务器设置了正确的 CORS 响应头,允许你的域名进行跨域访问。 ``` // server-side setup (Node.js Express, for example) app.use((req, res, next) => { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With Content-Type'); next(); }); ``` 2. **JSONP(JSON with Padding)**: - 如果后端支持 JSONP,可以在后端设置响应为 `<script>` 标签的形式,然后在前端用 JavaScript 动态插入 iframe。 ```javascript const script = document.createElement('script'); script.src = `http://your-api.com/callback?data=${encodeURIComponent(JSON.stringify(data))}`; document.body.appendChild(script); ``` 3. **使用 postMessage 或者 MessagePort**: - 当前页面和 iframe 可以通过这些技术进行跨域通信,再做跳转操作。 4. **服务器重定向**: - 从后端角度考虑,如果允许的话,你可以让后端接口重定向到指定的 URL。 5. **开发模式下使用 proxy**: - 如果你在开发环境中使用 Vue CLI,可以配置 proxy 配置文件 (`~/.env.dev` 或 `.dev.conf.js`) 来代理请求,但这不适用于生产环境。 6. **polyfill 或者库**: - 对于老版本的浏览器,如 IE,可能需要使用 polyfill 库(如 axios-ie-fetch),或是针对特定功能的 polyfill 如 `@babel/polyfill`. 确保在实际应用中根据需求选择合适的方法,并测试是否兼容 IE。同时,请注意,IE 版本较低可能会存在更多的兼容性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值