![](/img/trans.png)
[英]How to construct a multipart MIME request and POST it using AngularJS' $http method?
[英]AngularJs Multipart $http Request Issue
由於某種原因,我無法使[object Object]脫離表單。 我正在使用此處的hte方法: http : //badwing.com/multipart-form-data-ajax-uploads-with-angularjs/#comment-431
我發送的JSON非常復雜(示例):
{
"challenge_id": 262,
"priority": "0",
"cause_id": "29",
"timestamp": "2013-11-29 12:06:01",
"translations": {
"en": {
"name": "asdfgsfd",
"description": "sdfghfs"
}
},
"actions": {
"1": {
"type": "chek",
"step": "1",
"translations": {
"en": {
"description": "adsfas"
}
}
},
"2": {
"type": "chek",
"step": "2",
"translations": {
"en": {
"description": "fsdgsd"
}
}
}
}
}
我的回答如下:
Content-Disposition: form-data; name="challenge_json"
[object Object]
我的要求看起來像這樣:
return $http.post( REQUEST_URL + '/ENDPOINT', {challenge_json:data}, {
transformRequest: function(data) {
console.log(data);
var fd = new FormData();
angular.forEach(data, function(value, key) {
fd.append(key, value);
});
console.log(fd);
return fd;
}
我通過httpProvider配置更改來修改標頭。 但是,嘗試將其按順序進行操作並獲得相同的結果。 任何幫助,將不勝感激。
看來您已經接近解決方案,但是需要在傳遞給$ http的選項中取消設置“ content-type”標頭,以便xmlhttprequest對象可以在其send方法上獲取formdata時自動添加它。
https://groups.google.com/d/topic/angular/MBf8qvBpuVE/discussion
在這里看到游樂場http://jsfiddle.net/Lv1n55db/1/
(直接提供FormData對象和無操作轉換,或者您在transformRequest中提供普通數據對象並將其轉換為FormData的方式沒有顯着差異,關鍵在標頭選項中)
headers:{'Content-Type':undefined},
它可能會因不同的瀏覽器和不同的angularjs版本而異。 至少在不需要文件字段等情況下,一種更確定和穩定的方法可能是不使用本機FormData,而是實現序列化以自己編寫字符串,就像FormData polyfills那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.