我学习框架表达我为一些网址获取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);
//
答案 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.
}
})