Is the vue project webpack proxyTable just for the development environment? Now the code is not cross-domain in the development environment, but it is actually cross-domain when packaged online. What's going on?

is the vue project webpack proxyTable used only in the development environment? Now the code is not cross-domain in the development environment, but even cross-domain when packaged online. How to do

1 at present, the development environment does not use proxyTable to solve cross-domain problems, but is solved by background php.
2 does not package cross-domain, npm run build to run on the server during the development environment, so the interface is cross-domain

.

can you set anything at the front end to solve the problem

clipboard.png

=

< hr >

let config = {

env: "development",
baseUrl: "http://apidev.211shouyintai.com/api"

};
export default config;

< hr >

const path = require ("path");
const os = require (" os");
const webpack = require ("webpack");
const ExtractTextPlugin = require (" extract-text-webpack-plugin");
const HappyPack = require ("happypack");
var happyThreadPool = HappyPack.ThreadPool ({size: os.cpus (). Length});
function resolve (dir) {

return path.join(__dirname, dir);

}
module.exports = {

entry: {
    main: "@/main",
    "vender-base": "@/vendors/vendors.base.js",
    "vender-exten": "@/vendors/vendors.exten.js"
},
output: {
    path: path.resolve(__dirname, "../dist/dist")
},
module: {
    rules: [
        {
            test: /\.vue$/,
            loader: "vue-loader",
            options: {
                loaders: {
                    css: "vue-style-loader!css-loader",
                    less: "vue-style-loader!css-loader!less-loader"
                },
                postLoaders: {
                    html: "babel-loader"
                }
            }
        },
        {
            test: /iview\/.*?js$/,
            loader: "happypack/loader?id=happybabel",
            exclude: /node_modules/
        },
        {
            test: /\.js$/,
            loader: "happypack/loader?id=happybabel",
            exclude: /node_modules/
        },
        {
            test: /\.js[x]?$/,
            include: [resolve("src")],
            exclude: /node_modules/,
            loader: "happypack/loader?id=happybabel"
        },
        {
            test: /\.css$/,
            use: ExtractTextPlugin.extract({
                use: ["css-loader?minimize", "autoprefixer-loader"],
                fallback: "style-loader"
            })
        },
        {
            test: /\.less$/,
            use: ExtractTextPlugin.extract({
                use: ["css-loader?minimize","autoprefixer-loader", "less-loader"],
                fallback: "style-loader"
            }),
        },
        {
            test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/,
            loader: "url-loader?limit=1024"
        },
        {
            test: /\.(html|tpl)$/,
            loader: "html-loader"
        }
    ]
},
plugins: [
    new HappyPack({
        id: "happybabel",
        loaders: ["babel-loader"],
        threadPool: happyThreadPool,
        verbose: true
    })
],
resolve: {
    extensions: [".js", ".vue"],
    alias: {
        "vue": "vue/dist/vue.esm.js",
        "@": resolve("../src"),
    }
}

};

< hr >

const webpack = require ("webpack");
const HtmlWebpackPlugin = require (" html-webpack-plugin");
const ExtractTextPlugin = require ("extract-text-webpack-plugin");
const CopyWebpackPlugin = require (" copy-webpack-plugin");
const merge = require ("webpack-merge");
const webpackBaseConfig = require (". / webpack.base.config.js");
const fs = require ("fs");
const package = require (".. / package.json");

module.exports = merge (webpackBaseConfig, {

devtool: "-sharpsource-map",
output: {
    publicPath: "/dist/",
    filename: "[name].js",
    chunkFilename: "[name].chunk.js"
},
plugins: [
    new ExtractTextPlugin({
        filename: "[name].css",
        allChunks: true
    }),
    new webpack.optimize.CommonsChunkPlugin({
        name: ["vender-exten", "vender-base"],
        minChunks: Infinity
    }),
    new HtmlWebpackPlugin({
        title: "iView admin v" + package.version,
        filename: "../index.html",
        inject: false
    }),
    new CopyWebpackPlugin([
        {
            from: "src/views/main_components/theme_switch/theme"
        }
    ])
]

});

< hr >

const webpack = require ("webpack");
const HtmlWebpackPlugin = require (" html-webpack-plugin");
const ExtractTextPlugin = require ("extract-text-webpack-plugin");
const CopyWebpackPlugin = require (" copy-webpack-plugin");
const cleanWebpackPlugin = require ("clean-webpack-plugin");
const UglifyJsParallelPlugin = require (" webpack-uglify-parallel");
const merge = require ("webpack-merge");
const webpackBaseConfig = require (". / webpack.base.config.js");
const os = require ("os");
br = const fs (" br);
const path = require ("path");
const package = require (".. / package.json");

module.exports = merge (webpackBaseConfig, {

output: {
    publicPath: "http://pmy.211shouyintai.com/dist/",  //  https://iv...admin 
    filename: "[name].[hash].js",
    chunkFilename: "[name].[hash].chunk.js"
},
plugins: [
    new cleanWebpackPlugin(["dist/*"], {
        root: path.resolve(__dirname, "../")
    }),
    new ExtractTextPlugin({
        filename: "[name].[hash].css",
        allChunks: true,
    }),
    new webpack.optimize.CommonsChunkPlugin({
        // name: "vendors",
        // filename: "vendors.[hash].js"
        name: ["vender-exten", "vender-base"],
        minChunks: Infinity
    }),
    new webpack.DefinePlugin({
        "process.env": {
            NODE_ENV: ""production""
        }
    }),
    new webpack.optimize.UglifyJsPlugin({
        compress: {
            warnings: false
        }
    }),
    // new UglifyJsParallelPlugin({
    //     workers: os.cpus().length,
    //     mangle: true,
    //     compressor: {
    //       warnings: false,
    //       drop_console: true,
    //       drop_debugger: true
    //      }
    // }),
    new CopyWebpackPlugin([
        {
            from: "td_icon.ico"
        },
        {
            from: "src/styles/fonts",
            to: "fonts"
        },
        {
            from: "src/views/main_components/theme_switch/theme"
        }
    ]),
    new HtmlWebpackPlugin({
        title: "Pro",
        favicon: "./td_icon.ico",
        filename: "../index.html",
        template: "!!ejs-loader!./src/template/index.ejs",
        inject: false
    })
]

});


the front end alone can't solve it. I remember that proxytable itself is only used for development, and it deals with some cross-domain problems. You have nothing to do with him after build, which is equivalent to just a js to execute.
I don't know what service your front-end page uses. If you use nginx, you can do a reverse proxy in it. CORS is done through the server.

Menu