http-proxy-middleware中间件解决前端开发中的跨域问题
Posted 竿头日上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http-proxy-middleware中间件解决前端开发中的跨域问题相关的知识,希望对你有一定的参考价值。
http-proxy-middleware中间件解决前端开发中的跨域问题
安装依赖
npm install http-proxy-middleware --save-dev npm install webpack --save-dev --save-dev npm install webpack-dev-server --save-dev npm install axios --save
配置webpack:webpack.config.js文件
var proxy = require('http-proxy-middleware'); module.exports = { entry:{ index:'./index.js', }, output:{ path:__dirname, filename:'[name].build.js', }, module:{ loaders:[] }, resolve:{ extensions:['.js',".css",".jsx"] }, devServer: { proxy: { '/api': { // api表示当前项目请求的key target: 'http://xxxxxxxx:8000', // 代理服务器路径 pathRewrite: {'^/api' : '/'}, // 重写路径 changeOrigin: true } } } }
请求数据
import axios from 'axios'; var obtn = document.getElementById('btn'); obtn.addEventListener('click',function(){ axios.get('/api/json').then(res=>{ console.log(res); }) })
官网
https://www.npmjs.com/package/http-proxy-middleware
express用法
var express = require('express'); var proxy = require('http-proxy-middleware'); // proxy middleware options var options = { target: 'http://www.example.org', // target host changeOrigin: true, // needed for virtual hosted sites ws: true, // proxy websockets pathRewrite: { '^/api/old-path' : '/api/new-path', // rewrite path '^/api/remove/path' : '/path' // remove base path }, router: { // when request.headers.host == 'dev.localhost:3000', // override target 'http://www.example.org' to 'http://localhost:8000' 'dev.localhost:3000' : 'http://localhost:8000' } }; // create the proxy (without context) var exampleProxy = proxy(options); // mount `exampleProxy` in web server var app = express(); app.use('/api', exampleProxy); app.listen(3000);
以上是关于http-proxy-middleware中间件解决前端开发中的跨域问题的主要内容,如果未能解决你的问题,请参考以下文章
使用axios以及http-proxy-middleware代理处理跨域的问题
Browsersync使用http-proxy-middleware转发请求到mock服务器
http-proxy-middleware 代理在 React js 和 Spring Boot 项目中不起作用。 GET API 返回 415 状态错误