#node.js #angular #express #server #cloud9-ide
#node.js #angular #экспресс #сервер #cloud9-ide
Вопрос:
В связи с этой проблемой задается так много вопросов, но ни один из них не решает мою проблему. Я использую cloud9 IDE для своей разработки. Я пытаюсь получить данные с сервера узла в проект angular с помощью API. Мой node.js сервер имеет весь необходимый заголовок CORS. Но я продолжаю получать сообщение об ошибке. Вот мой серверный код:
var express = require('express'),
app = express(),
port = 8080,
bodyParser = require('body-parser');
const cors = require('cors');
app.use(cors());
const { expressCspHeader, INLINE, NONE, SELF } = require('express-csp-header');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(expressCspHeader({
policies: {
'default-src': [expressCspHeader.NONE],
'img-src': [expressCspHeader.SELF],
}
}));
app.use(cors());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
if ('OPTIONS' == req.method) {
res.sendStatus(200);
}
else {
next();
}});
var routes = require('./api/routes/doRoutes'); //importing route
routes(app);
app.use(function(req, res) {
res.status(404).send({url: req.originalUrl ' not found'});
});
app.listen(port);
console.log('RESTful API server started on: ' port);
Вот ошибка в браузере firefox:
Проблема в IDE? Или я что-то упускаю? Пожалуйста, помогите!
Комментарии:
1. Хорошо! Думаю, я нашел проблему. Проблема была с IDE, я запустил сервер с локального хоста, и все начало работать. Хотя я хотел бы знать, почему это происходит с cloud9
Ответ №1:
Я думаю, это потому, что у вас включен только глагол get в вашем бэкэнде
Измените это:
res.header('Access-Control-Allow-Methods', 'GET');
для этого:
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');
Комментарии:
1. Спасибо за комментарий. Я попробовал это, он выдает ту же ошибку.
2. хорошо, затем добавьте заголовок «Access-Control-Allow-Origin» к запросу во внешнем интерфейсе
3. заголовок запроса не работает, он выдает ошибку как «req.header не является функцией»