我在 Webpack 中的代理有问题吗?
Are there some problems with my proxy in Webpack?
我想从别人写的一篇Api中获取一些信息。我使用 axios 来请求 Api。我用webpack打包的时候,会出现跨域的问题。我尝试使用 Webpack 提供的代理,它仍然显示我一些问题。
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https
我按照这个来写我的webpack.config.js
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 请求:
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来了解是否成功。
http://api.douban.com
托管在哪里?
您需要更新其服务器配置以允许从不同来源(可能是本地主机)发送的请求。
基本上,从 douban.com
上托管的东西发送的请求可能默认启用,但除非服务器配置明确允许,否则不会从其他地方发送请求。
我想从别人写的一篇Api中获取一些信息。我使用 axios 来请求 Api。我用webpack打包的时候,会出现跨域的问题。我尝试使用 Webpack 提供的代理,它仍然显示我一些问题。
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https
我按照这个来写我的webpack.config.js
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 请求:
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来了解是否成功。
http://api.douban.com
托管在哪里?
您需要更新其服务器配置以允许从不同来源(可能是本地主机)发送的请求。
基本上,从 douban.com
上托管的东西发送的请求可能默认启用,但除非服务器配置明确允许,否则不会从其他地方发送请求。