Угловая загрузка файла 2 с использованием данных формы
Я хочу реализовать функцию загрузки файлов в моем angular2
проект. Я хочу ограничить пользователя загружать только файлы определенного типа: .pdf
, .doc
а также .docx
,
Вот мой код для fileChange
:
fileChange(event) {
let fileList: FileList = event.target.files;
if(fileList.length > 0) {
let file: File = fileList[0];
console.log('file',file);
var formData = new FormData();
formData.append('file', file, file.name);
var options = { content: formData };
console.log('options',options);
var jsonBody = {};
jsonBody['submoduleid'] = '3789e76489fc4e118f8dffad107fbbbd';
jsonBody['file'] = options;
console.log('jsonbody',jsonBody);
this.Module7Service.uploadFile(jsonBody)
.subscribe(
data => {
console.log(data.Response)
if (data.message == "module7 finish") {
console.log('after success',jsonBody)
alert('done file uploaded successfully');
}
else{
alert('not uploaded');
}
});
}
}
Вот мой код для uploadFile
:
//service code
uploadFile(file){
const body = file;
const headers = new Headers({
'Authorization': window.localStorage.getItem('token'),
'content_type' : 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW',
'Accept': 'application/json',
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Credentials': 'true',
'Access-Control-Allow-Methods': 'GET,HEAD,OPTIONS,POST,PUT',
'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept',
'Source': 'WEB'
});
return this.http.post(this.apiUrl + 'module7/', { body: body }, { headers: headers })
.map(
res => {
return res.json();
},
error => alert("आपली विनंती आत्ता पूर्ण करू शकत नाही, कृपया पुन्हा प्रयत्न करा."));
}
И это input
HTML-тег:
<input type="file" (change)="fileChange($event)"
placeholder="Upload file" accept=".pdf,.doc,.docx">
Я добавил все необходимые ключи, форм-данные и т. Д., Но при загрузке файла я получаю сообщение об ошибке:
XMLHttpRequest не может загрузить "apiurl". Поле заголовка запроса Access-Control-Allow-Methods не разрешено Access-Control-Allow-Headers в предварительном ответе.
Вот изображение ошибки в консоли браузера.
Что может быть источником этой проблемы?