2017-12-19 17 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입니다

다음
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의 요청 인이 내 webpack.config.js를 작성 따르

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