CORS标头在MEAN堆栈应用程序中不工作
CORS header not working in MEAN stack application
我正在使用MEAN堆栈(Node.js, Express, AngularJS和Mongoose)开发一个应用程序。我对这两者有一个基本的了解。我的API运行在与前端不同的端口上,因此,我在API文件中包含了CORS头文件。然而,Chrome仍然给我这个错误:
XMLHttpRequest cannot load http://localhost:9000/#/.
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
这是我在API中包含的头文件:
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
我不知道我哪里出错了。如果它有帮助,我试图加载一个用户对象,以便在配置文件页面上显示信息。这是我的配置文件控制器的代码:
angular.module('angTestApp')
.controller('ProfileCtrl', function ($scope, $http) {
$http.get('http://localhost:8080/profile')
.success(function (user) {
$scope.user = user;
console.log(user);
});
});
编辑这是我的server.js文件,如果有帮助://server.js
// BASE SETUP
// =============================================================================
// call the packages we need
var express = require('express'); // call express
var cors = require('cors');
var app = express(); // define our app using express
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
mongoose.connect('mongodb://test:test@novus.modulusmongo.net:27017/a3pemoGa')
var classroom = require('./app/models/classroom');
var article = require('./app/models/article');
var user = require('./app/models/user');
//From Tutorial
var passport = require('passport');
var flash = require('connect-flash');
var morgan = require('morgan');
var cookieParser = require('cookie-parser');
var session = require('express-session');
// configure app to use bodyParser()
// this will let us get the data from a POST
app.use(bodyParser());
app.use(cors());
//app.use(express.static(__dirname + '/public'));
var port = process.env.PORT || 8080; // set our port
// ROUTES FOR OUR API
// =============================================================================
// more routes for our API will happen here
// REGISTER OUR ROUTES -------------------------------
//From tutorial
// set up our express application
require('./app/config/passport')(passport); // pass passport for configuration
app.use(morgan('dev')); // log every request to the console
app.use(cookieParser()); // read cookies (needed for auth)
app.use(bodyParser.json()); // get information from html forms
app.set('view engine', 'ejs'); // set up ejs for templating
app.use(session({ secret: 'ilovescotchscotchyscotchscotch' })); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session
require('./app/API/routes')(app, passport);
//require('./app/API/general');
// START THE SERVER
// =============================================================================
app.listen(port);
console.log('Magic happens on port ' + port);
//exports = module.exports = app;
我用一个棘手的解决方案解决了cors问题。首先用require "REQUEST" npm
app.get('/scrape', function (req, res) {
console.log("=============================Scrape =========================")
var url = req.body.url;
request(url, function(error, response, html){
if(!error){
res.send(html)
}
});
,在前端像这样使用
$http.get("/scrape", {
params: { "url": "http://localhost:8080/profile" }
});
相关文章:
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- firefox插件:退出不工作的应用程序观察器
- 为什么Turbolinks不能正常工作?Rails应用程序
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- angular js应用程序不工作
- 应用程序在“关闭”之后停止工作(控制台中没有错误);咕哝的构造”;
- 只需添加一个'允许跨来源请求'到我的节点应用程序工作
- 我应该将哪些数据传递给 Spotify 应用程序才能使分页工作
- 如何修复网络中的屏幕大小为BB 10应用程序工作
- 下载文件卡住安卓应用程序:工作灯
- 超薄的开机自检呼叫无法从 Ionic 应用程序工作
- 为什么获胜'这不是我简单的Angular.js应用程序工作
- 我需要使网络应用程序作为窗口全屏应用程序工作.在IE-11(最后一个)为PC(WIN-7),全屏模式,用一个按钮关闭它
- 应用程序工作,但其中的第一个控制器出现故障
- REST请求从应用程序工作,但不是从javascript
- 试图获得一个示例Node.js应用程序工作
- 如何保持应用程序工作,即使模型未能加载烬
- IndexeDB不为chrome打包应用程序工作
- Rx.js和应用程序工作流
- AngularJs 项目不能作为单页 Web 应用程序工作