vue.js+DRF跨域访问图片
2024-08-26 16:04:58
一、背景
在前后端分离过程时,后端服务器只开放本地接口,而前端则开放IP接口,在DRF响应请求时,会把域名(locahost+port)响应给前端服务器,前端服务器把再把数据响应给浏览器,浏览器在解析相应资源时就会报错。
二、解决方案
要点:
1. 关闭DRF自动合成资源完整链接(域名+资源路径)
2.在VUE端合成对外开放的完整链接(IP+资源链接)
方法:
DRF部分(serializers)
class GoodsFrontImageSerializer(serializers.ModelSerializer):
url = serializers.SerializerMethodField(read_only=True)
class Meta:
model = Goods
fields = ('url',)
def get_url(self, obj):
try:
return 'api/' + obj # obj:DRF可访问链接
except:
return None
class GoodsSerializer(serializers.ModelSerializer):
goods_front_image = GoodsFrontImageSerializer()
class Meta:
model = Goods
fields = "__all__"
VUE部分(xx.vue)
<template>
<div class="hello">
<h1></h1>cc
<ul>
<li v-for="inf in info['results']">
<img :src="inf.goods_front_image.url">
</li>
</ul>
</div>
</template>
<script>
export default {
el: '#app',
data () {
return {
info: null
}
},
mounted () {
this.$axios
.get('/goods/')
.then(response => (this.info = response.data))
}
}
</script>
三、效果
在另外一台服务器上访问。
最新文章
- deepin linux 安装 mysql
- 使用nginx为ArcGIS Server做反向代理
- 最小生成树 kruskal hdu 5723 Abandoned country
- Java 操作 Redis 高级
- emacs tutorial笔记
- 初学Java语法(笔记)
- img 图片高度设置为百分比无效的解答
- 记录bigdesk中ElasticSearch的性能参数
- self.a 和 _a 的区别
- c#基类 常用数据验证的封装,数字,字符,邮箱的验证
- Buffer
- MySQL流程控制函数
- javascript Node操作
- ActivityManager与Proxy模式的运用
- html2canvas 识别 svg 解决方案
- 几个bat文件(关于robot freamwork安装)
- Linux ansible 之 playbook
- 服务发现 - consul 的介绍、部署和使用
- WebBrowser控件的NavigateToString()方法 参数 为中文时乱码问题的解决。
- JavaScript之12306自动刷新车票[待完善]
热门文章
- Tomcat清理无用应用防止漏洞
- ISO/IEC 9899:2011 条款6.9.1——函数定义
- MySql存储过程常用的函数
- Spring MVC 实例:Excel视图的使用
- OpenGL程序无法启动此应用程序,因为计算机中丢失glut32.dll(转))
- 利用SynchronizationContext.Current在线程间同步上下文(转)
- centos配置/etc/mail.rc发邮件
- JavaScript获取手机屏幕翻转方法
- ELK之Kibana的可视化监控报警插件sentinl的配置
- NPOI OFFICE 2007 文件格式不被支持,读取异常