2014-02-24 2 views
0

내가 가진 FormData 객체에 <li> 's의 목록에서 데이터를 추가 해요 :개체를 배열에 푸시하고 FormData로 보내는 방법은 무엇입니까?

media_links_array = []; 
$('.media_links_ul:first li').each(function() { 
    var media_type = $(this).attr("data-media_type"); 
    var media_link = $(this).text(); 
    var myObject = { 
     "media_type": media_type, 
     "media_link": media_link 
    } 
    media_links_array.push(myObject); 
}); 
myFormData.append("media_links", media_links_array); 

예상되는 동작

이 나는대로 (방화범 순> POST에) 보낼 것으로 예상 :

--------------- nnnnnnnnn Content-Disposition: form-data; name="media_links" 

{"media_type":media_type,"media_link":media_link} 

현재 행동

그러나이 같은 보내는이 :

--------------- nnnnnnnnn Content-Disposition: form-data; name="media_links" 

[object Object],[object Object] 
+0

toString()이 적용될 때 이러한 현상이 일어나기 때문입니다. – epascarello

+0

FormData.append는 문자열 파일 또는 blob을 두 번째 매개 변수로 간주합니다. 당신은 그것들 중 아무 것도 아닌 배열을주었습니다 ... https://developer.mozilla.org/en-US/docs/Web/API/FormData –

+0

왜 formData 객체가 필요한가요? 문자열을 서버에 보내려고한다면, jQuery.ajax처럼 쉽게 할 수있는 방법이 있을까요? – adeneo

답변

0

JSON.stringify(media_links_array) 문자열로 당신에게 당신의 JSON 객체를 제공 할 것입니다.

+1

참고 : 일부 브라우저 (http://caniuse.com/json)에서는 작동하지 않지만 A 등급 브라우저는 정상이지만 IE7 이하와 같은 것을 지원해야하는 경우에는 polyfill (http://bestiejs.github.io/json3/) – Populus

+1

@Populus 맞아요,하지만 그것도 FormData에 대한 걱정입니다. FormData가 있다고 가정 할 수 있다면 JSON.stringify가 가정합니다. –

+0

대단히 감사합니다. 추가 정보가 필요합니다. – user1063287

관련 문제