前言
怎么能是开心呢?那是相当的开心.今天在写ajax请求的时候需要调后台的接口,不出意料的跨域了,后台以这个接口是给app用的为借口拒绝了我的要求,然而我只能脸上笑嘻嘻心里妈卖批的给予回应.以前就跨域这个问题一直很迷糊,虽然有一些方法例如jsonP啊,domain啊等等,但仿佛都有使用的前提条件限制,并不是任何情况下都适用,事实情况是大部分情况用不了.总是依靠后端给设置cors也还是感觉心里空空的,毕竟不是每个后端都会...到时候还是要把锅甩给自己.外加个不上进的罪名.还是不求人的比较好.寻寻觅觅了很久,终于实践成功了一种方法,妈妈再也不用担心我跨域求后台的问题.下面就把这种方法教给像我一样的小白,让大家从此摆脱跨域的魔咒.
教程开始
- 安装node(默认你会这一步)
- 在你的项目中打开命令行工具,输入如下命令
npm install express http-proxy-middleware --save-dev
- 在项目根目录新建一个server.js文件(文件名任意,习惯用server),里面写如下代码:
var express = require('express');
var proxyMiddleWare = require("http-proxy-middleware");
var proxyPath = "http://xx.xx.xx:port"; //这里写目标后端服务地址,port是端口号.
var proxyOption ={target:proxyPath,changeOrigoin:false}
var app = express();
app.use(express.static('./')); //确认你的index.html是放在项目根目录下的,否则./后面要加上上级目录的名字
app.use("/router",proxyMiddleWare(proxyOption)) //router处填写你请求的服务器地址后面那一堆.比如完整的url是http://101.201.148.221:8900/api/1/user/three,那router处就填/api/1/user/three.
app.listen(3000, function() {
console.log("server start");
});
别忘了ctrl+s保存
- 好了,现在大胆的把你原来ajax请求中的地址改成你自己的本地域,还是那个比方,比如原来要请求的url是这个样子http://101.201.148.221:8900/api/1/user/three ,现在改成这个样子 http://127.0.0.1:3000/api/1/user/three.
- 最后一步,在命令行中敲
node server.js
如果没报错,那我猜你应该是成功了,见证奇迹的时刻到了.在浏览器中输入127.0.0.1:3000,现在去看你请求的结果吧.