2017-12-19 10 views
0

他人が書いたApiからいくつかの情報を得たいです。私はAxiを使ってApiをリクエストします。 Webpackを使ってパックすると、クロスドメインの問題が発生します。私はWebpackによって提供されるプロキシを使用しようとするが、それはまだ私にいくつかの問題を示している。Webpackのプロキシに問題がありますか?

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https

私はここで

https://webpack.github.io/docs/webpack-dev-server.html#proxy

私webpack.config.jsを書くために、これを辿るここに私のwebpack.config.js

let path = require('path'); 

module.exports = { 
    devServer: { 
     proxy:{ 
      '/v2': { 
       target: 'http://api.douban.com', 
       secure:false, 
       changeOrigin: true, 
       pathRewrite: { 
        '^/v2': '/v2' 
       } 
      } 
     } 
    }, 
    entry: ['whatwg-fetch','./App/app.js'], 
    output: { 
     path: path.join(__dirname, '/dest'), 
     filename: 'app.js' 
    }, 
    resolve: { 
     extensions: ['.js', '.jsx', '.css'] 
    }, 
    module: { 
     loaders: [ 
      { test: /\.js|jsx$/, 
       loaders: ['babel-loader'], 
       exclude: /node_modules/ 
      }, 
      { 
       test: /\.css$/, 
       loaders:['css-loader'] 
      }, 
      { test: /\.(eot|woff|woff2|svg|ttf)([\?]?.*)$/, 
       loaders: ['file-loader'] 
      }, 
      { test: /\.json$/, 
       loader: 'json-loader' 
      } 
     ] 
    }, 
    node: { 
     console: true, 
     fs: 'empty', 
     net: 'empty', 
     tls: 'empty' 
    } 
}; 

である私のaxios要求であります:

axios.post({ 
url: '/v2/movie/in_theaters', 
}) 
.then((res)=>{ 
//console.log(res.data) 
//data=res.data; 
this.setState({data:"success"}) 
}) 
.catch((err)=>{ 
this.setState({data:"err"}) 
}) 

私はReactを使用しているので、setStateで成功したかどうかを調べようとします。

答えて

0

http://api.douban.comはどこにホストされていますか?

異なるオリジン(おそらくローカルホスト)から送信された要求を許可するようにサーバーの設定を更新する必要があります。

douban.comでホストされたものから送信されたリクエストは、デフォルトでは有効になっている可能性がありますが、サーバー設定で明示的に許可されていない限り、

Cross-Origin Resource Sharing (CORS)

+1

私は多くのことを学びました、どうもありがとうございました、それは私のサーバーではありませんので、私は道configuration.Byそのサーバーを更新できませんでした。 – answerhua

関連する問題