在项目中将图片上传到SM.MS报错 [vite] http proxy error

这篇具有很好参考价值的文章主要介绍了在项目中将图片上传到SM.MS报错 [vite] http proxy error。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

语言及配置:vue、vantui、vite

报错信息

[vite] http proxy error:
Error: read ECONNRESET
    at TLSWrap.onStreamRead (node:internal/stream_base_commons:217:20)

或者

[vite] http proxy error:
Error: connect ETIMEDOUT 2606:4700:3037::6815:532d:443
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16)

解决办法

官方文档:SM.MS v2 API Docs。在官方文档中指定上传的Url是:https://sm.ms/api/v2/ ,但还是无法上传成功,最后将Url改为:https://smms.app/api/v2 成功解决。文章来源地址https://www.toymoban.com/news/detail-773276.html

页面代码

<template>
    <div class="upload-container">
        <van-uploader
            v-model="fileList"
            :max-count="1"
            :after-read="afterRead"
        />
        <div v-if="imgUrl" class="result">
            <p>上传成功,图片链接为:</p>
            <a :href="imgUrl" target="_blank">{{ imgUrl }}</a>
        </div>
        <div v-if="errorMsg" class="error">
            <p>上传失败,错误信息为:</p>
            <p>{{ errorMsg }}</p>
        </div>
    </div>
</template>

<script>
import axios from "axios";

export default {
    data() {
        return {
            fileList: [],
            imgUrl: "",
            errorMsg: "",
        };
    },
    methods: {
        afterRead(file) {
            // 创建表单数据对象
            let formData = new FormData();
            // 添加图片文件
            formData.append("smfile", file.file);
            // 发送 POST 请求到 sm.ms 的 API 地址
            axios.post("/useSMMS/upload", formData, {
                    headers: {
                        "Content-Type": "multipart/form-data",
                        "Authorization": " ", //这里填上自己账号的ApiTocken
                    },
                })
                .then((res) => {
                    // 处理响应数据
                    if (res.data.success) {
                        // 如果成功,显示图片链接
                        this.imgUrl = res.data.data.url;
                        this.errorMsg = "";
                    } else {
                        // 如果失败,显示错误信息
                        this.imgUrl = "";
                        this.errorMsg = res.data.message;
                    }
                })
                .catch((err) => {
                    // 处理异常情况
                    this.imgUrl = "";
                    this.errorMsg = err.message;
                });
        },
    },
};
</script>

<style scoped>
.upload-container {
    margin: 20px;
}
.result {
    color: green;
}
.error {
    color: red;
}
</style>

在vite.config.ts解决跨域问题

module.exports = {
    server: {
        proxy: {
            '/useSMMS': {
                // target: 'https://sm.ms/api/v2',
                target: 'https://smms.app/api/v2',
                changeOrigin: true,
                rewrite: (path) => path.replace(/^\/useSMMS/, '') // 不可以省略rewrite
            }
        }
    }
}

注意:不建议在前端透露ApiTocken

注意:不建议在前端透露ApiTocken

注意:不建议在前端透露ApiTocken

到了这里,关于在项目中将图片上传到SM.MS报错 [vite] http proxy error的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包