我试图从 Angular 2 应用程序将文件传递到 Web API,但实际的文件数据未发送。
这是我的 Angular 2 服务代码:
var headers = new Headers();
headers.append('Content-Type', 'multipart/form-data');
var formData = new FormData();
formData.append("file", file);
return this.http.post('http://myapiurl.com/files/upload', formData, { headers: headers }).map(res => res.json());
在 Angular 2 文档中,POST 方法签名如下:
post(url: string, body: string, options?: RequestOptionsArgs) : Observable<Response>
没有选项可以传递表单数据或其他对象。只是主体请求中的一个字符串。当前的解决方法是使用 javascript 和常规 xhr 请求。这样做有明显的缺点,例如无法使用可观察量等。
对此的任何帮助将不胜感激。
事实上,这还不支持。请参阅这个正在进行的问题:https://github.com/angular/angular/issues/5517 https://github.com/angular/angular/issues/5517.
HTTP 支持的当前实现仅支持请求负载的文本内容。查看这两个文件
- https://github.com/angular/angular/blob/master/modules/angular2/src/http/backends/xhr_backend.ts#L82 https://github.com/angular/angular/blob/master/modules/angular2/src/http/backends/xhr_backend.ts#L82
- https://github.com/angular/angular/blob/master/modules/angular2/src/http/static_request.ts#L93 https://github.com/angular/angular/blob/master/modules/angular2/src/http/static_request.ts#L93
希望对你有帮助,
蒂埃里
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)