Spring boot 当我向spring boot发送表单数据和对象时,当前请求不是多部分请求
我正在从angular向Spring boot发送一个自定义对象和formData,但抛出了一个错误——“当前请求不是一个多部分请求” 当我这样做的时候,一切都很好 棱角的Spring boot 当我向spring boot发送表单数据和对象时,当前请求不是多部分请求,spring-boot,angular8,Spring Boot,Angular8,我正在从angular向Spring boot发送一个自定义对象和formData,但抛出了一个错误——“当前请求不是一个多部分请求” 当我这样做的时候,一切都很好 棱角的 private base_url = "http://localhost:8082"; addProduct(product:Product,file:File) :Observable<any> { const headers = new HttpHeaders({ Auth
private base_url = "http://localhost:8082";
addProduct(product:Product,file:File) :Observable<any>
{
const headers = new HttpHeaders({
Authorization: 'Bearer ' + sessionStorage.getItem("authToken")})
let formData = new FormData();
formData.append("file",file);
return this.httpClient.post<any>(this.base_url+"/api/addProduct",formData,{headers});
or
return this.httpClient.post<any>(this.base_url+"/api/addProduct",product,{headers});
我当前的实现是下面的代码,但它不起作用。
我得到一个错误-当前请求不是多部分请求。
如何将产品和表单数据发送到spring boot应用程序。我需要帮助。
棱角的
可以在多部分文件和数据的表单数据中使用角度代码
const formData = new FormData();
formData.append('file',this.pdfFile,this.pdfFile.name);//append for file
formData.append('key',Value);//append for data
formData.append('key',Value);
例如,formData.append('productName','product.productName')
您可以尝试此代码您的标题应包含
“内容类型”:“多部分/表单数据”
请将此添加到标题中
const HttpUploadOptions = {
headers: new HttpHeaders({ "Content-Type": "multipart/form-data" })
}
尝试使用xmlHttpRequest而不是httpClient
const formData = new FormData();
//file is your uploaded file
formData.append("file", file)
const xhr = new XMLHttpRequest()
xhr.onreadystatechange = (e) => {
if (xhr.status === 200) {
console.log('SUCCESS', xhr.responseText);
} else {
console.warn('request_error');
}
};
xhr.open('POST', 'UPLOAD_URL', true);
xhr.send(formData);
请确保您的microservice accept multipartfile with key为“file”谢谢您的回答,这是唯一对我有效的方法
const formData = new FormData();
formData.append('file',this.pdfFile,this.pdfFile.name);//append for file
formData.append('key',Value);//append for data
formData.append('key',Value);
const headers = new HttpHeaders({
Authorization: 'Bearer ' + sessionStorage.getItem("authToken")})
this.httpClient.post<any>(this.base_url+"/api/addProduct', formData ,headers).subscribe(
(response) => {
console.log(response); }
@PostMapping("/addProduct")
public void addProduct(@RequestBody Product product)
{
}
const HttpUploadOptions = {
headers: new HttpHeaders({ "Content-Type": "multipart/form-data" })
}
const formData = new FormData();
//file is your uploaded file
formData.append("file", file)
const xhr = new XMLHttpRequest()
xhr.onreadystatechange = (e) => {
if (xhr.status === 200) {
console.log('SUCCESS', xhr.responseText);
} else {
console.warn('request_error');
}
};
xhr.open('POST', 'UPLOAD_URL', true);
xhr.send(formData);