代码拉取完成,页面将自动刷新
/**
* 使用nodejs来实现本地开发环境的跨域请求转发,发布为手机应用后通过phonegap的白名单机制来实现跨域
* User: walker
* Date: 12-8-29
* Time: 上午9:44
*/
var http = require('http');
var path = require('path');
var urlparse = require('url').parse;
var express = require('express');
var app = express();
app.use("/proxy", function (req, res) {
var url = req.url.substr(5);
var target = urlparse(url);
var headers = {};
for (var k in req.headers) {
if (k === 'host' || k === 'connection') {
continue;
}
headers[k] = req.headers[k];
}
console.log(url);
console.log(target.path);
var options = {
host: target.hostname,
port: target.port || 80,
path: target.path,
method: req.method,
headers: headers
};
var proxyReq = http.request(options, function (response) {
res.writeHead(response.statusCode, response.headers);
response.on('data', function (chunk) {
res.write(chunk);
});
response.on('end', function () {
res.end();
});
});
proxyReq.on('error', function (err) {
proxyReq.abort();
res.writeHead(500);
res.end(url + ' error: ' + err.message);
});
req.on('data', function (chunk) {
proxyReq.write(chunk);
});
req.on('end', function () {
proxyReq.end();
});
});
app.use(express.static(__dirname + '/demo'));
app.listen(3000);
console.log("Server is launching at http://localhost:3000");
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。