2010-08-21 11 views
16

मैं बहुखण्डीय/फार्म डेटा के साथ एक HTTP POST कॉल करने के लिए, jQuery का उपयोग कर कोशिश कर रहा हूँ:jQuery का उपयोग कर मल्टीपार्ट/फॉर्म-डेटा के साथ एक HTTP पोस्ट कॉल बनाना?

$.ajax({ 
    url: 'http://localhost:8080/dcs/rest', 
    type: 'POST', 
    contentType:'multipart/form-data', 
    data: 'dcs.source=boss-web&query=data&dcs.algorithm=lingo&dcs.output.format=JSON&dcs.clusters.only=true', 
    //dataType: "jsonP", 
    success: function(jsonData) {alert('POST alert'); data=jsonData ; }, 
    error : function(XMLHttpRequest, textStatus, errorThrown) { 
      console.log('An Ajax error was thrown.'); 
      console.log(XMLHttpRequest); 
      console.log(textStatus); 
      console.log(errorThrown); 
      } 
}); 

यह काम नहीं करता। फायरबग एक अपरिभाषित त्रुटि देता है और लौटा XMLHttpRequst ऑब्जेक्ट मल्टीपार्ट फ़ील्ड गलत पर सेट होता है।

क्या मैं jQuery के साथ इस काम करने के लिए कर सकते हैं? और यदि यह संभव नहीं है तो यह हासिल करने के लिए एक सरल है?

अर्थात idon't फ़ाइलें, बस कुछ डेटा स्थानांतरित करने की जरूरत है। लेकिन सर्वर को मल्टीपार्ट की आवश्यकता है।

उत्तर

11

multipart/form-data इस तरह नहीं देखता:

dcs.source=boss-web&query=data&dcs.algorithm=lingo&dcs.output.format=JSON&dcs.clusters.only=true 

यह application/x-www-form-urlencoded है।

यहाँ कैसे multipart/form-data अनुरोध की तरह दिखता है की एक example है। और संबंधित RFC 1867

multipart/form-data अक्सर फ़ाइलों को अपलोड करने से जुड़ा है। यह आपकी स्थिति है, तो आप जो आप रूपों और supports file uploads रूप में अच्छी तरह ajaxify करने की अनुमति देता jquery form plugin पर एक नज़र ले सकता है।

0

इस तरह काम करता है:

$("form#upload-form") 
    .attr("enctype", "multipart/form-data") 
    .attr("encoding", "multipart/form-data"); 
$.ajax({ 
    type: "POST", 
    contentType:attr("enctype", "multipart/form-data"), 
    url: "/adm/oferta_insert", 
    data: dados, 
    success: function(data) { 
     alert(data); 
    } 
}); 

http://www.bennadel.com/blog/1273-Setting-Form-EncType-Dynamically-To-Multipart-Form-Data-In-IE-Internet-Explorer-.htm

+0

क्या होगा अगर डेटा मैं भेजने के लिए कोशिश कर रहा हूँ एक पूर्ण रूप में वास्तव में नहीं है? –

+0

मैं एक त्रुटि कह attr हिस्सा contentType सेट है कि के लिए निर्धारित नहीं है मिलता है। –

1

FormData का उपयोग करना(), आप ajax अनुरोध के माध्यम से फ़ाइलों को अपलोड कर सकते हैं। FormData उपयोग के बारे में FormData

ट्यूटोरियल::

अधिक जानकारी के लिए इस लिंक का संदर्भ लें tutorial

+2

फॉर्मडाटा यानी 8/9 – Exegesis

+0

के साथ संगत नहीं है यानी 8/9 हैक में फॉर्मडाटा के लिए यहां देखें - http://stackoverflow.com/q/8286934/1429387 – naXa

संबंधित मुद्दे