तो jQuery Ajax docs के अनुसार, यह अनुरोध भेजते समय क्वेरी स्ट्रिंग के रूप में डेटा को क्रमबद्ध करता है, लेकिन processData:false
सेटिंग को मुझे शरीर में वास्तविक JSON भेजने की अनुमति देनी चाहिए। दुर्भाग्य से मुझे पहले का निर्धारण करने में कठिनाई हो रही है, अगर यह हो रहा है और दूसरा ऑब्जेक्ट ऐसा लगता है जो सर्वर पर भेजा जा रहा है। मुझे पता है कि सर्वर जो मैं भेज रहा हूं उसे पार्स नहीं कर रहा हूं।अनुरोध शरीर में jQuery पोस्टिंग वैध जेसन
ऑब्जेक्ट शाब्दिक {someKey:'someData'}
पोस्ट करने के लिए http client का उपयोग करते समय, यह काम करता है। लेकिन data: {someKey:'someData'}
के साथ jQuery का उपयोग करते समय, यह विफल रहता है। दुर्भाग्य से, जब मैं सफारी में अनुरोध का विश्लेषण, यह कहता है कि संदेश पेलोड [object Object]
है ... महान ... और Firefox में पद खाली है ...
जब जावा पक्ष यह सचमुच हो जाता है [object Object]
पर शरीर सामग्री प्रवेश करने तो एक वास्तविक JSON डेटा कैसे भेजता है ??
क्या किसी को jQuery से भेजे गए अनुरोध के साथ अनुरोध निकाय में जेएसओएन डेटा क्रमबद्ध करने वाली जावा सेवा के साथ अनुभव हुआ है?
$.ajax({
contentType: 'application/json',
data: {
"command": "on"
},
dataType: 'json',
success: function(data){
app.log("device control succeeded");
},
error: function(){
app.log("Device control failed");
},
processData: false,
type: 'POST',
url: '/devices/{device_id}/control'
});
तो क्या मुझे अब प्रक्रिया की आवश्यकता नहीं है डेटा: 'JSON.stringify() 'का उपयोग करके झूठा? – brad
@brad - सही, यह करने के बाद इससे कोई फर्क नहीं पड़ता क्योंकि यह * पहले से ही एक स्ट्रिंग है, और उस स्थिति में [jQuery इसे आगे संसाधित नहीं करेगा] (https://github.com/jquery/jquery/blob/ 1.4.3/src/ajax.js # L207)। –
एक आकर्षण की तरह काम किया, बहुत धन्यवाद! क्या यह सच है कि सभी अनुरोध निकायों को तारों की उम्मीद है जो दूसरे छोर पर पार्स हो जाएंगे? – brad