从webpack localhost服务器

时间:2017-01-13 21:34:06

标签: javascript reactjs google-api webpack cors

我正在尝试从https://maps.googleapis.com/maps/api/place/收到请求并且我一直收到此错误。

  

否'访问控制 - 允许 - 来源'标题出现在请求的上   资源。起源' http://localhost:3000'因此是不允许的   访问。

我设置了标题:{' Access-Control-Allow-Origin':' *'在我的webpack deve服务器中,但仍然收到错误。任何人都知道我可能在这里失踪以阻止此错误。

版本:webpack 1.13.3

  var ExtractTextPlugin = require('extract-text-webpack-plugin');

    function getDevTool() {
        if (process.env.NODE_ENV !== 'production') {
            return 'source-map'; //enables source map
        }

        return false;
    }

    module.exports = {
        entry: {
            main: './src/scripts/index.js'
        },
        output: {
            filename: './build/scripts/[name].js'
        },
        devtool: getDevTool(),
        devServer: {
            port: 3000,
            hot: true,
            historyApiFallback: true,
          headers: { 'Access-Control-Allow-Origin': '*' }
        },
        module: {
            loaders: [
                {
                    test: /\.js$/,
                    exclude: 'node_modules',
                    loader: 'babel',
                    query: {
                        presets: ['react', 'es2015', 'stage-1']
                    }
                },
                {
                    test: /\.scss$/,
                    loader: ExtractTextPlugin.extract('css!sass')
                }
            ]
        },
        plugins: [
            new ExtractTextPlugin('build/styles/main.css', {
                allChunks: true
            })
        ]
    };

1 个答案:

答案 0 :(得分:1)

webpack标头仅用于向本地服务器发出的请求(对http://localhost:3000的请求)。您向https://maps.googleapis.com/maps/api/place/发出请求,该请求不得支持跨源请求。

查看Google的documentation。快速查看表明他们希望API密钥永远不会发送到客户端浏览器,因此他们不允许跨源请求。

您可能需要创建自己的服务器,代表您的用户发出这些API请求。