У вас возникли проблемы с возвратом данных из почтового запроса HTTP в API, который я создавал. Выдает ошибку:
XMLHttpRequest не может загрузить (здесь URL-адрес API). В запрошенном ресурсе нет заголовка "Access-Control-Allow-Origin". Происхождение http://localhost: 9000 ', следовательно, не допускается.
Здесь Угловой код на стороне клиента:
$http.post('MyAPI'sURLHere', {date: $scope.information.PubDate})
.then(function(response){
console.log(response);
}, function(error){
console.log(error);
});
И здесь код сервера Node для моего API:
app.post('/getThing', function(req, res){
var date = req.body.date;
console.log(typeof date);
var query = Overquery
var query2 = "alter session set nls_date_format = 'MM/dd/yyyy'";
console.log(query);
oracleDB.execute(query2, function(err, result){
if(err){
console.log(err.message);
}
else{
console.log(result);
}
});
oracleDB.execute(query, function(err, result){
if(err){
console.log(err.message);
}
else{
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'POST');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
console.log(result.rows);
res.json(result.rows);
}
});
});
Впервые созданный API, поэтому любые предложения и помощь будут очень благодарны!
В вашем узловом приложении этот образец кода должен решить ваши проблемы:
// Allowing X-domain request
var allowCrossDomain = function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Cache-Control");
// intercept OPTIONS method
if ('OPTIONS' == req.method) {
res.send(200);
}
else {
next();
}
};
app.use(allowCrossDomain);
Выполните следующее в своем проекте из оболочки bash:
npm install cors --save
Он установит это: https://github.com/expressjs/cors
Затем добавьте это на свой сервер при создании приложения.
var express = require('express');
var cors = require('cors');
var app = express();
app.use(cors());
Изменить: это позволит CORS для каждого домена, который не рекомендуется по соображениям безопасности. Проверьте здесь дополнительную конфигурацию CORS: https://github.com/expressjs/cors#configuring-cors