使用Http服务器解决前后端联调中的跨域问题
var http = require('http');
http.createServer(function (req, res) {
res.setHeader('Access-Control-Allow-Origin', '*'); // 设置请求头 允许所有域名访问 解决跨域
var options = {
hostname: 127.0.0.1, // 需要请求的服务的域名或IP
port: 3000, // 需要请求的服务端口号
path: req.url, // 请求路径
data: null,
method: 'GET', // 请求方式,默认为GET
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
};
/*** 对请求方式加以判断,并修改请求方式 ***/
if (req.method === 'GET') {
var params = url.parse(req.url).query
options.data = params;
options.method = "GET"
}else if(req.method === 'POST'){
var params = null;
req.on('data',function (aa) {
params = aa
});
options.data = params;
options.method = "POST"
}
var data = ''; // 创建变量保存请求到的数据
var request = http.request(options, function (request) {
console.log('状态码:' + request.statusCode)
console.log('响应头:' + JSON.stringify(request.headers))
request.setEncoding('utf8')
request.on('data', function (response) {
data += response
}).on('end', function () {
res.end(data); // 把data数据返回前端
})
})
request.on('error', function (e) {
console.log(e)
console.error('请求遇到问题:' + e.message)
})
request.end()
}).listen(8080, "127.0.0.1", function (err) { // IP和端口可以自行指定
if (!err) {
console.log(color.red('代理服务器启动成功,请访问: http://' + "127.0.0.1" + ':' + "8080"))
}
})版权声明:本文为StoneIT_ZL原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。