2011-11-22 10 views
8

मैं JSON ऑब्जेक्ट को .getJSON को पास करने का प्रयास कर रहा हूं लेकिन मुझे एक खराब अनुरोध त्रुटि मिल रही है।jQuery में .getJSON को JSON डेटा पास कर रहा है?

var data = { 
    "SomeID": "18", 
    "Utc": null, 
    "Flags": "324" 
}; 

$.getJSON("https://somewhere.com/AllGet?callback=?", JSON.stringify(data), function (result) { 
    alert(result); 
}); 

वर्तमान में करने के लिए यह काम कर रहा हो, मैं यह करने के लिए है, लेकिन मुझे पसंद नहीं है कि कैसे मैं मैन्युअल रूप से क्वेरी स्ट्रिंग का निर्माण करने के लिए है:

$.getJSON("https://somewhere.com/AllGet?SomeID=18&Utc=&Flags=324&callback=?", null, function (result) { 
     alert(result); 
    }); 

किसी को भी पता है कि यह मैं क्या कोशिश कर रहा हूँ है जेएसओएन वस्तुओं को पारित करने के साथ अनुरोधों को आसान कैसे बनाया जाए? मैं किसी भी मदद या सलाह की सराहना करता हूं।

+0

'$ .param (डेटा) आज़माएं; 'यह आउटपुट करता है'" कुछ आईडी = 18 और यूटीसी = शून्य और ध्वज = 324 "' – UnLoCo

उत्तर

18

, इस मान्य है:

$.getJSON("test.js", { name: "John", time: "2pm" }, function(json) { 
    alert("JSON Data: " + json.users[3].name); 
    }); 

इसलिए कोशिश:

var data = { 
    SomeID: "18", 
    Utc: null, 
    Flags: "324" 
}; 

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) { 
    alert(result); 
}); 

संपादित करें: http://api.jquery.com/jQuery.getJSON/

1

आपको कॉलबैक की बिल्कुल आवश्यकता क्यों है? (Ow प्रतीक्षा करें, jsonp) मैं पहली बार निम्न प्रयास करेंगे:

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function(result) { 
    alert(result); 
}); 

फ़ायरबग में कहीं और देखने के लिए अगर यह रिटर्न आप क्या उम्मीद करते हैं। मुझे यकीन नहीं है कि डेटा के रूप में एक स्ट्रिंग क्या करता है, लेकिन केवल एक ऑब्जेक्ट देने से ठीक काम करता है।

3

JSON.stringfy का उपयोग न करें, बस डेटा को पास करें।

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) { 
    alert(result); 
}); 
3

जब आप अनुरोध प्राप्त एक jQuery के लिए डेटा प्रदान करते हैं यह क्वेरी स्ट्रिंग पैरामीटर के निर्माण के लिए एक वस्तु, नहीं JSON स्ट्रिंग, उम्मीद है। सिर्फ इस के लिए अपने मूल कोड को बदलने का प्रयास करें: साइट के अनुसार

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) { 
    alert(result); 
}); 
0
$.getJSON("https://somewhere.com/AllGet?callback=?", {SomeID:"18",Utc:null,Flags:"324"}, function (result) { 
     alert(result); 
    }); 

या

var data = { 
    "SomeID": "18", 
    "Utc": null, 
    "Flags": "324" 
}; 


$.getJSON("https://somewhere.com/AllGet?callback=?", 
{ 
SomeID:data.SomeID, 
Utc:data.Utc, 
Flags:data.Flags 
}, 
function (result) { 
      alert(result); 
     }); 
1

तुम बस JSON वस्तु पारित JSON.stringfy करने की ज़रूरत नहीं है,, jQuery कि

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) { 
    alert(result); 
}); 
0

मैं json एन्कोडिंग की कोशिश की और यह काम किया साथ अपना URL पैरामीटर का निर्माण करेगी।

यह सुनिश्चित नहीं है कि यह कितना कुशल या व्यावहारिक है, इसे उपरोक्त प्रश्न के लिए एक कार्य के रूप में साझा करना।

$.getJSON("https://somewhere.com/AllGet?data="+encodeURI(JSON.stringify(data)), function (result) { 
     alert(result); 
});