Angular Can';t使用角响应形式发送多部分请求
我的Java后端API期望在Angular前端对表单发出多部分POST请求,该前端当前使用的是反应式表单。端点如下所示:Angular Can';t使用角响应形式发送多部分请求,angular,multipartform-data,angular-reactive-forms,reactive-forms,Angular,Multipartform Data,Angular Reactive Forms,Reactive Forms,我的Java后端API期望在Angular前端对表单发出多部分POST请求,该前端当前使用的是反应式表单。端点如下所示: @PostMapping("/submit") public ResponseEntity<?> submit( @RequestParam String requester, @RequestParam String subject, @RequestParam String description, @R
@PostMapping("/submit")
public ResponseEntity<?> submit(
@RequestParam String requester,
@RequestParam String subject,
@RequestParam String description,
@RequestParam String htmlBody,
@RequestParam String customFieldValues,
@RequestParam List<MultipartFile> attachments) {
return myBackendService.submitToZendesk(
requester, subject, description, htmlBody, customFieldValues, attachments);
}
服务:
public submitForm(payload: any): Observable<any> {
return this.resourceService.submitForm(payload)
}
public submitShippingAuth(payload: ShippingAuthRequest): Observable<any> {
const url = `${environment.api}/submit`
return this.http.post(`${url}`, payload)
.pipe(map(this.extractResponse), catchError(this.handleError))
}
但我的请求负载似乎确实包含表单数据:
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="requester"
ryan
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="subject"
Test Subject
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="description"
test desc
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="htmlBody"
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="customFieldValues"
test
------WebKitFormBoundaryTIuEnyoDjbqZHnFA--
有人知道我做错了什么吗?Postman中的表单数据POST有效。打印请求者的行应包含逗号(,),如下所示 append('requester','ryan',)
希望这能解决你的问题 提交功能看起来确实不错,
formData.append中的第三个参数是文件名,因此不需要。我唯一发现的是,您没有在httppost
请求中设置头。我猜您正在使用拦截器来执行此操作,如果没有,请尝试这样做 谢谢你的建议,萨普纳。不幸的是,这并没有解决它。是否有一个额外的逗号必须存在的原因,或者您只是指出了一个不一致的地方?据我所知,formData.append的第三个参数仅用于文件名,因此在本例中不需要它
error: "Bad Request"
message: "Required String parameter 'requester' is not present"
path: "/v1/submit"
status: 400
timestamp: 1571771034002
trace: "org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'requester' is not present
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="requester"
ryan
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="subject"
Test Subject
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="description"
test desc
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="htmlBody"
------WebKitFormBoundaryTIuEnyoDjbqZHnFA
Content-Disposition: form-data; name="customFieldValues"
test
------WebKitFormBoundaryTIuEnyoDjbqZHnFA--