は、私は次のようにAPIが(春ブーツで)ファイルをアップロードするリクエストを処理してい:以下 spring bootから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が不要になるように、Springブートサーバーから角型アプリケーションを提供するだけです。 –
私はサーバーと角型アプリケーションでCORSを有効にしました。 しかし、まだ動作しません! –
コンソールのエラーには、そうでなければ表示されます。だからあなたはいないか、あなたはそれを間違ってやったのです。 –