나는 다음과 같이 API는 (봄 부팅에서) 파일을 업로드 요청을 처리해야 : 아래 봄 부팅에서 각도 4의 파일을 올리시겠습니까?
@PostMapping("/api/admin/product/{id}/upload")
public ResponseEntity<Product> postUpload(@PathVariable("id") Integer id, @RequestParam("image") MultipartFile imageFile) {
Product product = productService.findOne(id);
return new ResponseEntity<>(productService.upload(product, imageFile),HttpStatus.OK);
}
내 요청을 처리 할 수있는 서비스입니다. 위의 API에 맞게 어떻게 수정해야합니까?
@Injectable()
export class ProductServiceService {
private baseUrl = 'http://localhost:8080/api/admin/product';
private headers = new Headers({'Content-Type' : 'multipart/form-data', 'Access-Control-Allow-Origin' : '*'});
private options = new RequestOptions({headers: this.headers});
constructor(private _http: Http) { }
postUpload(id) {
const formdata: FormData = new FormData();
formdata.append('image', image);
return this._http.post(this.baseUrl + '/' + id + '/upload', formdata, this.options)
.map((res: Response) => res.json())
.catch(this.errorHandler);
}
errorHandler(error: Response) {
return Observable.throw(error || 'SERVER ERROR');
}
}
** 서버 **는 CORS를 사용하도록 설정해야합니다 (따라서 ** 응답 **에서 Access-Control-Allow-Origin 헤더를 설정해야합니다). https://docs.spring.io/spring-boot/docs/1.5.8.RELEASE/reference/htmlsingle/#boot-features-cors를 읽어보십시오. 또는 CORS가 필요하지 않은 스프링 부트 서버에서 각도 응용 프로그램을 제공하십시오. –
서버 및 각도 앱에서 CORS를 사용하도록 설정했습니다. 그러나 여전히 작동하지 않습니다! –
콘솔에 오류가 있으면 다음과 같이 표시됩니다. 그래서 당신이하지 않았거나 당신이 그것을 잘못했다. –