Вы можете порекомендовать мне пример Sails.Js + Angular.js для загрузки файлов на сервер, а затем их просмотра. Я рассмотрел множество примеров, но ни один из них не подходит. Когда я пытаюсь загрузить каждый раз, когда я получаю сообщение об ошибке в консоли:AngularJS + SailsJS ng-file-upload
XMLHttpRequest не может загрузить Localhost: 1337/анализы/загрузки. Ответ на запрос перед полетом не проходит проверку контроля доступа: заголовок «Access-Control-Allow-Origin» содержит недопустимое значение «». Происхождение localhost: 3000, следовательно, не допускается.
часть моего контроллер AngularJS (с модулем нг-файлы загрузка):
$scope.upload = function (file) {
Upload.upload({
url: AppSettings.serverUrl+'/analyzes/upload',
data: {file: file}
}).then(function (resp) {
console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
}, function (resp) {
console.log('Error status: ' + resp.status);
}, function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded/evt.total);
console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
});
};
Мой HTML:
<div class="button" ngf-select="upload($file)">Upload on file select</div>
И мой контроллер Sails.JS (также у меня есть пустая модель): module.exports = {
upload: function (req, res) {
req.file('analyzes').upload(function (err, files) {
if (err)
return res.serverError(err);
return res.json({
message: files.length + ' file(s) uploaded successfully!',
files: files
});
});
}
};
Я чувствую, что источником проблемы является то, что я использую отдельный URL-адрес для отображения веб-сайта (localhost: 3000) и другого для Sails.Js (localhost: 1337).
I'am с помощью этого https://github.com/jakemmarsh/angularjs-gulp-browserify-boilerplate для переднего конца
И Сори за мой английский.
спасибо, что ответ. Однако я не знаю, какой код должен быть в FooController.bar. Может быть, у вас есть пример? –
Я положил этот код module.exports = function (req, res, next) { sails.log.debug ("Header GO"); res.header ('Access-Control-Allow-Origin', 'http: // localhost: 3000'); res.header ('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type'); res.header ('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS, HEAD'); next(); }; и ничего не произошло –
Вы ввели предложенный код (с изменениями, необходимыми для вашего случая) в '/ config/cors.js'? Вы не должны создавать FooController, это просто пример. Синтаксис есть в основном 'YourControllerName.yourFunctionName' ... – Fissio