2017-12-19 5 views
0

Ich möchte einige Informationen von einer API erhalten, die von anderen geschrieben wurde. Ich benutze Axios, um den Api anzufordern. Wenn ich Webpack zum Packen verwende, würde es das Problem der Cross-Domain haben. Ich versuche Proxy zu verwenden, der von Webpack bereitgestellt wird, es zeigt mir immer noch ein Problem. mein webpack.config.jsGibt es Probleme mit meinem Proxy in Webpack?

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

Ich folge dies mein webpack.config.js

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

hier zu schreiben, ist

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' 
    } 
}; 

Hier meine axios ist Anfrage:

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"}) 
}) 

Ich benutze React, also versuche ich zu verstehen, ob Success von setState.

Antwort

0

Wo ist die http://api.douban.com gehostet?

Sie müssen die Serverkonfiguration aktualisieren, um Anforderungen zuzulassen, die von einem anderen Ursprung gesendet wurden (wahrscheinlich localhost).

Grundsätzlich sind Anfragen, die von etwas gesendet werden, das unter douban.com gehostet wird, standardmäßig aktiviert, aber nicht von woanders, es sei denn, dies ist explizit in der Serverkonfiguration erlaubt.

Cross-Origin Resource Sharing (CORS)

+1

Es ist nicht mein Server, so konnte ich nicht seine Server configuration.By die Art und Weise aktualisieren, ich danke Ihnen sehr, habe ich viel gelernt. – answerhua