Угловой: доступ заблокирован политикой CORS при использовании HttpClient.request () для загрузки данных в приложение Springboot - PullRequest
0 голосов
/ 25 января 2019

Я создаю коды для загрузки файла / изображения на сервер (весенняя загрузка), но каждый раз, когда я пробовал это, всегда блокируется политикой CORS.

Я создаю коды для загрузки файла / изображения на сервер (весенняя загрузка), но каждый раз, когда я пробовал это, всегда блокируется политикой CORS.

Это мой сервис

pushFileToStorage(file: File): Observable<HttpEvent<{}>> {
    const formdata: FormData = new FormData();

    formdata.append('file', file);

    let hd = new HttpHeaders();
    hd = hd.append('Access-Control-Allow-Origin', 'http://xxxxx:8092');
    hd = hd.append('Content-Type', 'multipart/form-data');
    hd = hd.append('Accept', 'multipart/form-data');

    console.log(hd);

    const req = new HttpRequest('POST', 'http://xxxxx:8092/post', formdata, {
        headers: hd,
        reportProgress: true,
        responseType: 'text'
    });

    return this.http.request(req);
  }

А это мой машинопись

 selectedFiles: FileList;
 currentFileUpload: File;
 progress: { percentage: number } = { percentage: 0 };

 selectFile(event) {
    this.selectedFiles = event.target.files;
 }

 upload() {
    this.progress.percentage = 0;

    this.currentFileUpload = this.selectedFiles.item(0);
    this.accountService.pushFileToStorage(this.currentFileUpload).subscribe(event => {

    if (event.type === HttpEventType.UploadProgress) {
       this.progress.percentage = Math.round(100 * event.loaded / event.total);
    } else if (event instanceof HttpResponse) {
      console.log('File is completely uploaded!');
    }
    });

    this.selectedFiles = undefined;
 }

1 Ответ

0 голосов
/ 25 января 2019

Быстрый ответ: добавьте @CrossOrigin (origins = "http://localhost:4200") к вашему методу контроллера.

...