ajax后台返回json到vue显示图片:SpringCloud+vue

vue ajax访问springcloud,返回一个图片路径:C:\Users\yckj1221\Desktop\goods\5.jpg
然后在vue的页面中无法显示,其路径变为:http://localhost:8080/C:\Users\yckj1221\Desktop\goods\5.jpg

解决办法:

1、进入vue项目build文件夹下的webpack.dev.conf.js,注释掉contentBase:false

然后就会报这个错误:Not allowed to load local resource:
网上一些解决办法是说不允许直接使用本地路径,要自己建一个虚拟路径

 

2、然后这个方法对我来说不适用,我的解决办法是

把图片放在当前项目底下,才能vue页面发起ajax请求到Java后台,返回json值,然后显示
图片的真实路径,如:D:\NodeJiaoCheng\Demo\my-project\static\img\3.jpg
那么在vue项目的static文件夹下要新建一个img文件夹,里面存放图片

主要代码:

vue里面的data(),用来装返回json值的图片地址

selectAll()执行ajax,返回json并赋值给img[]

template用来显示图片

data() {
      return {
        img:[
        ]
      }
    },

selectAll: function () {
       var self = this;
        $.ajax({
          type:'POST',
          url:'http://localhost:8763/selectAll',
          data:{
          },
          success:function (backDate) {
            // 得到包含图片真实地址的json
            let photoUrl = backDate[0].photo;
            for (let i = 0; i < backDate.length; i++) {
              self.img.push(backDate[i].photo.substring(32));
            }
            //self.img.push(photoUrl.substring(32));
           console.log(self.img[0]);
            //self .data = backDate;
            // 清空原数组
            data.rows.splice(0,data.rows.length);
            // 把从数据库中取得的数据赋值到页面要显示的数组里
            Array.prototype.push.apply(data.rows,backDate);
            console.log(backDate);
          }
        })

在你需要显示图片的地方,加下面的这个代码
<template v-for="(row, index) in img ">
        <tr>
          <td><img :src="row"/></td>
        </tr>
      </template>


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要想实现动态添加数据到JSON文件中,需要以下几个步骤: 1. 前端使用VueAjax技术,将需要添加的数据通过POST请求发送到后端。例如: ```javascript axios.post('/addData', { name: '张三', age: 20, gender: '男' }).then(response => { console.log(response.data); }).catch(error => { console.log(error); }); ``` 2. 后端使用Node.js和Express框架接收前端发送的POST请求,并将数据添加到JSON文件中。例如: ```javascript const fs = require('fs'); const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.json()); app.post('/addData', (req, res) => { const newData = req.body; const dataFile = './data.json'; let data = []; fs.readFile(dataFile, 'utf8', (err, content) => { if (err) { console.error(err); res.status(500).send('服务器错误:读取数据文件失败!'); } else { try { data = JSON.parse(content); } catch (e) { console.error(e); res.status(500).send('服务器错误:解析数据文件失败!'); } data.push(newData); fs.writeFile(dataFile, JSON.stringify(data), err => { if (err) { console.error(err); res.status(500).send('服务器错误:写入数据文件失败!'); } else { res.send('添加数据成功!'); } }); } }); }); app.listen(3000, () => { console.log('服务器已启动,监听端口3000...'); }); ``` 在上述代码中,我们首先使用`body-parser`中间件来解析请求体中的JSON数据,然后读取JSON文件中的数据,将新数据添加到数据数组中,最后将修改后的数据数组写回JSON文件中。 注意,以上代码只是一个简单的示例,实际场景中需要添加更多的错误处理和安全措施,例如检查请求体中的数据是否合法、限制JSON文件的大小、防止文件读写冲突等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值