2011-10-20 14 views
13

मुझे निम्न कार्य ठीक से काम करने के लिए नहीं मिल सकता है। ऐसा लगता है कि यह गलत है। यह विभिन्न डेटा प्रकारों के 5 वें पुनरावृत्ति के बारे में है। मैं मूल रूप से केवल डेटा कर रहा था: {'id': id} जैसे मैं डब्ल्यूसीएफ के साथ काम करता हूं, लेकिन एएसएमएक्स के साथ यह काम नहीं कर रहा है। ऐसा लगता है कि यह आईडी के बजाय आईडी = 1234 के रूप में teh डेटा को क्रमबद्ध कर रहा है: 1234, लेकिन मैं इसके लिए बिल्कुल नया हूं। किसी भी सहायता की सराहना की जाएगी। ओह, और मैं सीधे ब्राउज़र में सेवा को कॉल कर सकता हूं और यह डेटा को सही तरीके से देता है इसलिए मुझे पता है कि यह सेवा नहीं है।अमान्य JSON आदिम: आईडी

function getVentID(id) { 
    //look up id in database and get VentID 
    alert('id: ' + id); 
    var jsdata = { "id": + id} 
    $.ajax({ 
     type: 'POST', 
     contentType: 'application/json; charset=utf-8', 
     url: 'services/UserService.asmx/getVentID', 
     data: jsdata, 
     dataType: 'json', 
     success: function (msg) { 
      alert(msg.d); 
     }, 
     error: function (a, b, c) { 
      alert('Error: ' + a.toString() + ' ' + b.toString() + " " + c.toString()); 
     } 
    }); 
} 

पेज। मुझे पता है कि 10 समान प्रश्न हैं जैसे कि उनमें से कोई भी जवाब नहीं है जिसे मैं पा सकता हूं या यह मेरे लिए काम करता है।

var jsdata = '{id:' + id + '}'; 

समस्या यह है कि jQuery प्रपत्र डेटा के रूप में jsdata एन्कोडिंग है, नहीं json प्रकार है:

उत्तर

30

सरल संभव फिक्स लाइन के लिए var jsdata परिवर्तन की शुरुआत होगी। dataType पैरामीटर प्रभावित करता है कि प्रतिक्रिया को कैसे पार्स किया गया है, न कि POST डेटा को एन्कोड किया गया है।

वास्तव में मेरे ज्ञान के लिए jQuery में कोई JSON क्रमबद्धता कोड नहीं है। स्पष्ट रूप से John Resig suggests using Douglas Crockford's json2.js

इसके इस्तेमाल के लिये json.js और फिर एक स्क्रिप्ट संदर्भ जोड़ें:

var jstext = JSON.stringify(jsdata, null, 2); 
+1

ठीक है, तकनीकी रूप से त्रुटि मैं तैनात हल है कि, लेकिन अब मैं मिल: अमान्य वेब सेवा कॉल, पैरामीटर के लिए याद आ रही मूल्य:।: \ U0027ID \ u0027 "," StackTrace "" .Services.WebServiceMethodData.CallMethod ... आदि कोई विचार? –

+0

मैंने मामले को बदलने की कोशिश की क्योंकि नई त्रुटि आईडी के बजाय आईडी कहती है लेकिन इससे मदद नहीं मिली और मुझे यह भी पता नहीं है कि यह संबंधित है ... –

+0

हमम। मैं मानता हूं कि मुझे बिल्कुल पता नहीं है कि एएसएमएक्स क्या उम्मीद कर रहा है। आप अपने ब्राउज़र में सीधे क्या करते हैं इसका एक उदाहरण क्या है जो काम करता है? मैं निश्चित रूप से एक jQuery कॉल में अनुवाद करने में मदद कर सकता हूं। – sblom

0

मैं अभी इस समस्या का समाधान।

आप इस प्रारूप में यूआरएल पारित की जरूरत है:

http://domain.com.br/service.asmx/method?objParam= {क्ष: "खोज"}

और अपने service.asmx फ़ाइल में, आप इस प्रणाली की घोषणा की जरूरत है:

Public Function method(objParam As Dictionary(Of String, String)) 

End Function 

आपके कोड में, ऐसा लगता है:

function getVentID(id) { 
 
    var jsdata = { 
 
    "id": +id 
 
    } 
 
    var sData = JSON.stringify(jsdata); //convert your json in string 
 
    $.ajax({ 
 
    type: 'POST', 
 
    contentType: 'application/json; charset=utf-8', 
 
    url: 'services/UserService.asmx/getVentID', 
 
    data: { 
 
     id: sData 
 
    }, 
 
    dataType: 'json', 
 
    success: function(msg) { 
 
     alert(msg.d); 
 
    }, 
 
    error: function(a, b, c) { 
 
     alert('Error: ' + a.toString() + ' ' + b.toString() + " " + c.toString()); 
 
    } 
 
    }); 
 
}
012 System.Web.Script पर

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