axios二次封装图片跨域
时间: 2023-10-22 18:04:16 浏览: 139
在进行axios二次封装时,可以通过配置请求头的方式来解决图片跨域问题。
例如,对于以图片形式返回的数据,可以设置请求头中的`responseType`为`'blob'`,并且设置`crossDomain`为`true`,具体代码如下:
```javascript
import axios from 'axios'
const http = axios.create({
baseURL: 'http://example.com',
timeout: 5000,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
http.interceptors.request.use(
config => {
config.headers['Authorization'] = 'Bearer ' + localStorage.getItem('token')
return config
},
error => {
return Promise.reject(error)
}
)
http.interceptors.response.use(
response => {
if (response.data instanceof Blob) {
response.headers['Content-Disposition'] = 'attachment'
}
return response
},
error => {
return Promise.reject(error)
}
)
export default {
get(url, params = {}) {
return http({
url,
params,
method: 'get',
responseType: 'blob',
crossDomain: true
})
},
post(url, data = {}) {
return http({
url,
data,
method: 'post'
})
}
}
```
在上述代码中,我们定义了一个名为`http`的实例对象,并通过`interceptors`拦截器来处理请求和响应的数据。其中,在`get`方法中,我们设置了`responseType`为`'blob'`,并且设置`crossDomain`为`true`,这样就能够解决图片跨域的问题。
阅读全文