鍍金池/ 問(wèn)答/HTML/ 在webpack.dev.conf.js使用dev-server做代理,前端請(qǐng)求

在webpack.dev.conf.js使用dev-server做代理,前端請(qǐng)求代理地址,npm run dev時(shí)報(bào)錯(cuò)?

webpack.dev.conf.js文件——dev-server對(duì)象

devServer: {
    clientLogLevel: 'warning',
    historyApiFallback: true,
    hot: true,
    host: process.env.HOST ||?config.dev.host,
    port: process.env.PORT ||?config.dev.port,
    open: config.dev.autoOpenBrowser,
    overlay: config.dev.errorOverlay ? {
      warnings: false,
      errors: true,
    } : false,
    publicPath: config.dev.assetsPublicPath,
    proxy: config.dev.proxyTable,
    quiet: true, // necessary for FriendlyErrorsPlugin
    watchOptions: {
      poll: config.dev.poll,
    },
    before(app) {
      app.get('/api/joke', function(req, res) {
        // 請(qǐng)求的api地址
        const url = 'http://api.jisuapi.com/xiaohua/text'

        axios.get(url, {
          params: req.query
        }).then((response) => {
            res.json(response)
        }).catch((error) => {
            console.error(error)
        })
      })
    }
  }

joke.vue文件

created() {
    this.axios.get('/api/joke', {
        params: {
            appkey: 'appkey',
            pagenum: 1,
            pagesize: 20,
            sort: 'addtime'
        }
    }).then((res) => {
        console.log(res)
    }).catch((err) => {
        console.error(err)
    })
}

運(yùn)行npm run dev時(shí),報(bào)以下錯(cuò)誤

錯(cuò)誤

其中params沒(méi)有問(wèn)題,因?yàn)槭褂胮roxyTable代理是可以返回?cái)?shù)據(jù)的。
請(qǐng)問(wèn)這個(gè)問(wèn)題該怎么解決?

回答
編輯回答
伴謊

我想問(wèn)下devServer之前引入的express和axios你是怎么配置的?現(xiàn)在我也遇到些問(wèn)題

2018年9月10日 23:33
編輯回答
不討囍

遇到錯(cuò)誤一步步分析啊,
報(bào)錯(cuò)信息是在序列化JSON的時(shí)候遇到循環(huán)引用了,那哪里用到j(luò)son序列化了呢
整個(gè)文件就一個(gè) res.json
那response為啥是循環(huán)引用的呢
因?yàn)閍xios在nodejs環(huán)境下調(diào)用的,使用的是nodejs的http模塊,而不是ajax請(qǐng)求,而http模塊默認(rèn)返回的response是一個(gè)很復(fù)雜的對(duì)象,會(huì)循環(huán)引用到自己,類(lèi)似于瀏覽器里的window.window這樣

只要改成 res.json(response.data)就可以了

2017年7月5日 03:14