node跨域代码

express搭建

var express = require('express');
var router = express.Router();
var http = require('http');
var https = require("https");
var url = require('url');
var qs = require('querystring');
router.all('/', function(req, res, next) {
    res.setHeader("Access-Control-Allow-Origin", "*");
    var resultData = '';//创建一个变量来接收返回的数据
    var query = url.parse(req.url).query;//提取出网址后面的参数
    var qs_parse = qs.parse(query);//把参数转换成对象
    console.info(qs_parse);
    console.info();
    if(qs_parse.myUrl == undefined){
        res.send("参数错误!");
    }
    if(qs_parse.myUrl.split('://')[0] == "https"){
        https.get(qs_parse.myUrl,function (response) {
            response.setEncoding('utf8');
            response.on('data',function (result) {
                console.log(result);
                console.info();
                resultData += result;
            });
            response.on('end',function () {
                var str = '';
                if (qs_parse.callback){
                    str =  qs_parse.callback + '(' + JSON.stringify(resultData) + ')';//jsonp
                }else {
                    str = JSON.stringify(resultData);
                }
                res.send(JSON.parse(str));
            });
        });
    }else {
        http.get(qs_parse.myUrl,function (response) {
            response.setEncoding('utf8');
            response.on('data',function (result) {
                console.log(result);
                console.info();
                resultData += result;
            });
            response.on('end',function () {
                var str = '';
                if (qs_parse.callback){
                    str =  qs_parse.callback + '(' + JSON.stringify(resultData) + ')';//jsonp
                }else {
                    str = JSON.stringify(resultData);
                }
                res.send(JSON.parse(str));
            });
        });
    }

});

module.exports = router;

 

 

  

 

posted @ 2017-08-03 14:25  木纹  阅读(112)  评论(0编辑  收藏  举报