不用20行搞定node反向代理
proxy.js
var express = require('express');
var app = express();
var proxy = require('http-proxy-middleware');
var host = 'localhost';
var port = '3000';
app.use('/',express.static('static'));//设置静态资源
app.use('/api/*',proxy({
target:'http://music.163.com/api',//代理域名或ip
changeOrigin:true,
pathRewrite:{
'^/api':''
}
}))
app.listen(port,function () {
console.log("server is listening at http://%s:%s",host,port)
})
跟目录下创建static文件夹,此文件夹为静态资源目录。在static目录下创建index.html。
index.html 内正常使用ajax,url地址更换为proxy.js中的需要被转发的路径。
此示例为, '/api/playlist/detail?id=19723756''
不使用代理情况下,资源请求存在跨域问题
Failed to load http://music.163.com/api/playlist/detail?id=19723756: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
在使用代理后,则能正常请求到所需信息,不过前提是被请求的服务端没有做过多严格的限制。
node 通过反向代理获取的数据记得启动服务哦!
node proxy.js