Я создаю веб-приложение стека MEAN, и я хочу загрузить файл, используя ng2-file-upload. Это мой код Angular 2.
classroom.component.html
<input type="file" class="form-control" name="single" ng2FileSelect [uploader]="uploader" />
<button type="button" class="btn btn-success btn-s"
(click)="uploader.uploadAll()" [disabled]="!uploader.getNotUploadedItems().length">
<span class="glyphicon glyphicon-upload"></span> Upload all
</button><br />
classroom.component.ts
uploader:FileUploader = new FileUploader({url: "http://localhost:3000/api/material/create-material"});
В server.js
app.use(cors());
app.use('/api',api);
app.use('/api/material',material);
и в material.js
var storage = multer.diskStorage({ //multers disk storage settings
destination: function (req, file, cb) {
cb(null, './uploads/');
},
filename: function (req, file, cb) {
var datetimestamp = Date.now();
cb(null, file.fieldname + '-' + datetimestamp + '.' + file.originalname.split('.')[file.originalname.split('.').length -1]);
}
});
var upload = multer({ //multer settings
storage: storage
}).single('file');
router.post('/create-material',passport.authenticate('jwt', {session: false}),function (req, res) {
upload(req,res,function(err){
console.log(req.file);
if(err){
res.json({error_code:1,err_desc:err});
return;
}
//res.json({error_code:0,err_desc:null});
});
});
При загрузке файла я получаю следующую ошибку
XMLHttpRequest не может загрузить http://localhost:3000/api/material/create-material. Ответ на запрос предварительной проверки не проходит проверку контроля доступа: значение Заголовок "Access-Control-Allow-Origin" в ответе не должен быть wildcard '*', когда режим учетных данных запроса "include". происхождения 'http://localhost:4200', следовательно, не допускается. режим учетных данных запросов, инициированных XMLHttpRequest, является управляемый атрибутом withCredentials.
В чем причина этого?