vue EventSource使用及配置请求头、webpack代理配置

EventSourcePolyfill 是EventSource封装的一个方法,可以配置请求头。

官方API:https://developer.mozilla.org/en-US/docs/Web/API/EventSource

一、安装依赖

npm install eventsource

npm install event-source-polyfill

二、不需要加请求头时

const eventSource = new EventSource(url); //我是在vue项目里,普通请求用的axios;这里的url可以直接写接口路径,baseUrl会直接使用axios的baseUrl
eventSource.onopen = function (e) {
     console.log(e, "连接打开时触发");
};
eventSource.onmessage = function (e) {
     console.log(e);
};
eventSource.onerror = function (e) { //断开连接及后端返回错误信息均会触发
     eventSource.close(); // 关闭连接
};

三、需要加请求头时

<script>
import { EventSourcePolyfill } from 'event-source-polyfill'

export default {
    methods: {
        eventSource () {
            const _this = this, eventSource = new EventSourcePolyfill(url, {
                heartbeatTimeout:300000, //超时时间,毫秒为单位,以5分钟为例
                headers: {
                    '请求头名称': '请求头值'
                }
            });
            eventSource.onopen = function (e) {
                console.log('onopen', e);
            };
            eventSource.onmessage = function (e) {
                console.log('onmessage', e);
            };
            eventSource.onerror = function (e) {
                console.log('onerror', e);
                _this.$message.error('连接失败');
                eventSource.close(); // 关闭连接
            };
        }
    }
}
</script>

四、webpack代理配置

 基于webpack的vue项目一般都会配置代理,用于解决接口请求的跨域问题,若想实时收到EventSource的消息,而不是在最后一口气收到,需要配置 vue.config.js里的devServer,设置devServer的compress属性为false

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Vue项目中使用阿里云OSS进行文件上传,可以通过配置请求头来实现。下面是一个简单的示例: 1. 首先,需要安装 `ali-oss` 库。可以使用命令 `npm install ali-oss --save` 进行安装。 2. 在Vue项目的配置文件中,例如 `vue.config.js` 或 `nuxt.config.js` 中添加以下代码: ```javascript // 引入阿里云SDK const OSS = require('ali-oss'); // 创建OSS实例 const client = new OSS({ // 配置OSS的相关信息 region: 'your_region', accessKeyId: 'your_access_key_id', accessKeySecret: 'your_access_key_secret', bucket: 'your_bucket_name', }); // 将OSS实例挂载到Vue原型上,方便在组件中使用 Vue.prototype.$oss = client; ``` 3. 在组件中使用时,可以通过 `this.$oss` 访问OSS实例,并进行文件上传等操作。例如: ```javascript // 上传文件 async upload(file) { try { // 设置请求头 const headers = { 'x-oss-object-acl': 'public-read', // 设置文件权限为公共读 }; // 调用OSS实例的put方法进行文件上传 const result = await this.$oss.put('your_file_key', file, { headers, }); console.log('文件上传成功:', result); } catch (error) { console.error('文件上传失败:', error); } } ``` 在这个示例中,`headers` 对象可以用来设置请求头,其中 `'x-oss-object-acl': 'public-read'` 是设置文件权限为公共读,你可以根据需要添加或修改其他请求头信息。 请注意替换示例代码中的 `your_region`、`your_access_key_id`、`your_access_key_secret`、`your_bucket_name` 和 `your_file_key` 分别为你的阿里云OSS配置信息和文件相关的信息。 希望能帮到你!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值