nodejs 代理 解决开发环境跨域问题
前后端分离项目中,会遇到跨域问题。解决方法无非就是jsonp cors等。
本次项目前端不搭node服务,线上用nginx搭站点,nginx转发ajax请求server。
本地开发环境的跨域问题用node做代理转发请求server(完美解决开发环境下请求server的跨域问题)。
node代码如下
方法一:request包
"use strict"; const express = require('express'); const path = require('path'); const app = express(); const request = require('request'); // 配置静态文件服务中间件 let serverUrl='http://220.231.2.29:7668';//server地址 app.use(express.static(path.join(__dirname, './')));//静态资源index.html和node代码在一个目录下 app.use('/', function(req, res) { let url = serverUrl + req.url; req.pipe(request(url)).pipe(res); }); app.listen(3000,'127.0.0.1', function () {//前端ajax地址写 http://127.0.0.1:3000/ console.log('server is running at port 3000'); });
方法一:http-proxy-middleware包
var express = require('express'); var proxy = require('http-proxy-middleware'); var app = express(); app.use('/', proxy({ target: 'http://www.baidu.com', changeOrigin: true })); app.listen(3000);