Proxy requests to a separate backend server with vue-cli

后端 未结 3 1284
轮回少年
轮回少年 2021-01-30 09:32

I am using vue-cli webpack-simple template to generate my projects, and I\'d like to proxy requests to a separate, backend server. How can this be easi

3条回答
  •  南笙
    南笙 (楼主)
    2021-01-30 09:58

    If you use webpack template with vue-cli, then you can find the required information in this reference document:

    http://vuejs-templates.github.io/webpack/proxy.html

    Or instead of changing your template now, you may copy the relevant config from the webpack template into your local webpack-simple template.

    EDIT: more info from my local setup

    This is what I have in my config/index.js under module.exports:

    dev: {
        env: require('./dev.env'),
        port: 4200,
        assetsSubDirectory: 'static',
        assetsPublicPath: '/',
        proxyTable: {
            '/api': {
                target: 'http://localhost:8080',
                changeOrigin: true
            },
            '/images': {
                target: 'http://localhost:8080',
                changeOrigin: true
            },
            // and so on...
    

    The above config runs my vue-cli on port 4200, and I run my server on port 8080.

    EDIT: Corrected info about CORS after comment #4 and #5

    Note:

    • The changeOrigin option in dev.proxyTable (in webpack config) ensures that you do not need to serve CORS headers on your server API responses.
    • If you decide to omit changeOrigin for any reason, then you need to ensure that your server API includes Access-Control-Allow-Origin: * (or equivalent) in its response headers.

    References:

    1. https://stackoverflow.com/a/36662307/654825
    2. https://github.com/chimurai/http-proxy-middleware

提交回复
热议问题