新版 vuejs cli webpack模板更新后的跨域请求问题?

1, 以前的代码是写在dev-server.js里面的,现在那个文件不见了

2,我就把添加到dev-server的代码,写进了build文件夹里面的
clipboard.png

代码如下

    var app = express()

    var apiRoutes = express.Router()
    
    apiRoutes.get('/getDiscList', function (req, res) {
      var url = 'https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg'
      axios.get(url, {
        headers: {
          referer: 'https://c.y.qq.com/',
          host: 'c.y.qq.com'
        },
        params: req.query
      }).then((response) => {
        res.json(response.data)
      }).catch((e) => {
        console.log(e)
      })
    })
    
    apiRoutes.get('/lyric', function (req, res) {
      var url = 'https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg'
    
      axios.get(url, {
        headers: {
          referer: 'https://c.y.qq.com/',
          host: 'c.y.qq.com'
        },
        params: req.query
      }).then((response) => {
        var ret = response.data
        if (typeof ret === 'string') {
          var reg = /^\w+\(({[^()]+})\)$/
          var matches = ret.match(reg)
          if (matches) {
            ret = JSON.parse(matches[1])
          }
        }
        res.json(ret)
      }).catch((e) => {
        console.log(e)
      })
    })
    
app.use('/api', apiRoutes)

出现的情况是这样的:以前有dev-server的版本

clipboard.png

现在最新的版本

clipboard.png

请求到的参数、地址都是一样的,但是

clipboard.png

clipboard.png

新版本的是webpack_hmr 现在的是 info?t=....

旧版的请求地址返回的数据是json数据,而新版的根本就找不到!! 请帮我解决一下,谢谢了

阅读 2.5k
1 个回答

需要找一个proxy代理或者node 里面的 express的api来代理

    import axios from 'axios'
    import qs from 'qs'
    
    // axios 配置
    axios.defaults.timeout = 10000;
    axios.defaults.baseURL = 'http://localhost:3000';
    
    export function fetchGet(url, param) {
        return new Promise((resolve, reject) => {
            axios.get(url, {params: param})
                .then(response => {
                    resolve(response.data)
                }, err => {
                    reject(err)
                })
                .catch((error) => {
                    reject(error)
                })
        })
    }
    export default {
        /**
         * 用户登录
         */
        Login(params) {
            return fetchGet('/login', params)
        },
    
         /**
         * popularmusic列表
         */
         PopularList() {
             return fetchGet('/playlist/detail', {id: 3778678})
         },
    
         /**
         * classicalmusic列表
         */
         ClassicalList() {
             return fetchGet('/playlist/detail', {id: 71384707})
         },
    
         /**
         * lightmusic列表
         */
         LightList() {
             return fetchGet('/playlist/detail', {id: 26467411})
         },
    
         /**
         * radiomusic列表
         */
         RadioList() {
             return fetchGet('/playlist/detail', {id: 897089})
         },
    
         /**
          * music歌词
          */
          MusicUrl(id) {
            return fetchGet('/music/url', {id})
          },
    
         /**
          * music歌词
          */
          MusicLyric(id) {
            return fetchGet('/lyric', id)
          },
    
          /**
          * music搜索
          */
          MusicSearch(keywords) {
            return fetchGet('/search', {keywords})
          },
    
          /**
          * 排行榜
          */
          MusicRank(idx) {
            return fetchGet('/top/list', {idx})
          },
    
    }
    

https://github.com/yyccQQu/Ma...
https://github.com/yyccQQu/webpack4/commits/dev-2中搜索‘跨域’

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题