前端文件上传因为没改成线上地址而出现跨域

事情是这样的,文件上传这个功能本来打算用封装的接口,但是文件上传的接口请求头需要进行单独的定义,所以我就写了一个单独的axios请求,如下

const customUpload = (e) => {
	let data = {
		file: e
	}
	axios
		.post(`http://xxx/sys/village/importExcel`, data, {
			headers: {
				'Content-Type': 'multipart/form-data',
				Authorization: token,
				Token: token
			}
		})
		.then((response) => {
			// 处理上传成功
			message.info('文件上传成功')
			handleSuccess(response, e)
		})
		.catch((error) => {
			// 处理上传失败
			message.info('文件上传失败')
			handleError(error, e)
		})
}

但是我把项目放到线上进行测试的时候,出现了跨域(我不太懂),报如下错误:

POST http://xxx/sys/village/importExcel net::ERR_CONNECTION_REFUSED

原因:

因为这个接口地址是我单独写的,他的ip是死的,不像封装的接口一样可以动态变换,所以我改成线上地址之后就会出现跨域请求错误,然后我就改成这样的了:

(只有.post后面的地址改变了)

import sysConfig from '@/config/index'

const customUpload = (e) => {
	let data = {
		file: e
	}
	axios
		.post(`${sysConfig.API_URL}/sys/village/importExcel`, data, {
			headers: {
				'Content-Type': 'multipart/form-data',
				Authorization: token,
				Token: token
			}
		})
		.then((response) => {
			// 处理上传成功
			message.info('文件上传成功')
			handleSuccess(response, e)
		})
		.catch((error) => {
			// 处理上传失败
			message.info('文件上传失败')
			handleError(error, e)
		})
}

像上面这样的话,我的接口地址里ip就是动态的了,会根据我给他配置线上地址动态生成,

然后就可以成功上传文件啦

问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值