Angular multipart / form-data表单发送

时间:2014-08-05 08:48:44

标签: javascript forms angularjs http post

我正在尝试使用AngularJS以“multipart / form-data”格式通过发布请求发送数据,我真的很困惑,因为我没有一个想法如何做到这一点。

怎么样

我的应用的第一个解决方案只需通过内置的提交方法点击<input type="submit" />按钮即可发送数据。

我已按照要求:http://yourscr.com/d282cebed47bd55f3315c75bd55189d2.png

您可以看到数据具有特殊格式。它由字符串分开 的 ----- WebKitFormBoundary .... 即可。

Content-type中也有相同的字符串。

我需要什么

使用AngularJS重写应用程序后,我正在尝试以完全相同的格式发送数据(因为现在我无法在后端更改任何内容)。 对于数据发送,我使用$ http服务。

$http.post( URL , data , {
    headers: {  'Content-Type'  : 'multipart/form-data'}
})

不幸的是它不起作用。我有以下要求: http://yourscr.com/2e7fd3827d300f4191c96837629adf9f.png

数据格式不同,现在只是一个对象。

然后

我决定尝试使用“new FormData()”

从我的表单中获取数据
var fd = new FormData();
$http.post( URL , fd , {
    headers: {  'Content-Type'  : 'multipart/form-data'}
})

但它仍然不起作用!此时我的请求中有空数据(尽管填写了Form的所有字段)。

要求:http://yourscr.com/ab7e05efcba7431eeb73a749936e8d17.png

问题

我应该做些什么来发送与第一个应用解决方案中使用的格式类似的数据?

如何使用AngularJS以'multipart / form-data'格式发送数据?

PS

对不起链接,关于我的声誉。我不能发布超过2个链接。

1 个答案:

答案 0 :(得分:0)

这个适合我。

app.config(function($httpProvider){
    $httpProvider.defaults.headers.post['Content-Type'] = 'multipart/form-data';
});
相关问题