前后端分離項目中,會遇到跨域問題。解決方法無非就是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);