NodeJS使用响应创建http请求

时间:2016-12-25 13:45:33

标签: node.js express

我学习框架表达我为一些网址获取http方法并从结果中获取正文,但现在只有我有这个状态302,我读到了关于corss域并将allow origin添加到头但仍然有重定向302 在我的例子中,我添加逻辑到路由文件,可能需要更漂亮的组织代码,我的一些控制器与行动,我只是学习,给我推荐。

host/myapp/routes/parse.js

var express = require('express');
var http = require('http');
var router = express.Router();

router.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');  
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

/* GET home page. */
router.get('/', function(req, res, next) {

  var options = {
    host: 'google.com.ua',
    port: 80,
    path: '/'
  };

  http.get(options, function(res) {
    console.log("Got response: " + res.statusCode + "this");
  }).on('error', function(e) {
    console.log("Got error: " + e.message);
  });


  res.send('respond with a resource');
});

module.exports = router;

和我的主机/ myapp / app.js添加

//
var parse = require('./routes/parse');
...
app.use('/parse', parse);
//

2 个答案:

答案 0 :(得分:0)

跨域HTTP请求(CORS)仅在从站点前端的脚本中启动时受到限制。在这里,您尝试通过服务器加载资源,因此这不应该是一个问题。所以我想你应该检查服务器控制台上的日志以找出问题,并尝试使用一个简单的包来获取你的数据,如superagent

答案 1 :(得分:0)

默认情况下,

http.get不遵循重定向。您必须添加自己的重定向逻辑,或使用支持自动重定向的库。

request内置了对重定向的支持。

var request = require('request');
request('http://www.google.com.ua', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Show the HTML for the Google homepage.
  }
})