2012-07-31 24 views
6

मैं अपने पास शेष बालों को खींचने वाला हूं, इसलिए यदि आप जानते हैं कि समस्या क्या हो सकती है तो कृपया मेरी मदद करें ... धन्यवाद। मेरे सभी गुगलिंग और खोज ने भुगतान नहीं किया है।jquery AJAX एएसपीनेट के साथ काम नहीं कर रहा

सबसे पहले, मैं jquery-1.7.2.min.js और ASP.net 2.0 वेब फ़ॉर्म का उपयोग कर रहा हूं।

मैं jquery का उपयोग करके AJAX कॉल करने की कोशिश कर रहा हूं लेकिन वाक्यविन्यास त्रुटि/पार्स त्रुटि संदेश प्राप्त करना जारी रखता हूं। मैंने कई अलग-अलग तरीकों की कोशिश की है, लेकिन जब मैं डेटा टाइप को जेसन पर सेट करता हूं तो वे सभी त्रुटि में होते हैं।

यहाँ मैं क्या है:

$.ajax({ 
    type: "POST", 
    url: "UserList.aspx/GetTestJson", 
    data: {}, //have also tried "{}" and other options such as removing the line 
    contentType: "application/json;charset=utf-8", 
    dataType: "json", 
    success: function(data, textStatus, jqXHR){ 
     alert('success'); 
    }, 
    //Using below instead of above makes no difference either 
    //success: function(data){ 
    // alert('success'); 
    //}, 
    error: function(jqXHR, textStatus, errorThrown){ 
     alert('errorThrown: ' + errorThrown); 
    } 
}); 

और aspx पेज विधि:

[WebMethod] 
public static string GetTestJson() 
{ 
    return "Hello My World"; 
} 

मैं भी एक वेब सेवा की स्थापना की कोशिश की है, लेकिन एक ही परिणाम मिलता है। ऐसा प्रतीत होता है कि वापस आने वाली प्रतिक्रिया या तो वेब सेवा से पृष्ठ या एक्सएमएल के लिए पूर्ण HTML है और क्योंकि मैंने डेटा टाइप को जेसन में सेट किया है, यह इसे पार्स करने में सफल नहीं है। यदि यह मामला है, मैं केवल जेसन लौटने के लिए प्रतिक्रिया कैसे सेट करूं?

[WebMethod] 
public static string GetTestJson() 
{ 
    HttpContext.Current.Response.ContentType = "application/json"; 
    string json = JavaScriptConvert.SerializeObject("Hello My World"); 
    return json; 
} 

त्रुटि संदेश मैं jQuery के माध्यम से प्राप्त:

errorThrown.message = "Syntax error" 
errorThrown.number = -2146827286 
errorThrown.name = "SyntaxError" 
textStatus = "parseerror" 
jqXHR.status = 200 
jqXHR.statusText = "OK" 
jqXHR.readyState = 4 
jqXHR.responseText = (the complete html of the page) 

कोई भी विचार या सुझाव

यहाँ कुछ और मैं भाग्य के बिना की कोशिश की है है?

धन्यवाद

+0

केवल सामग्री-प्रकार HTTP शीर्षलेख सेट करना वास्तव में प्रतिक्रिया की सामग्री को जादूगर रूप से परिवर्तित नहीं करता है। आपको डेटा को JSON में कनवर्ट करने की आवश्यकता है। साथ ही, [WebMethod] आमतौर पर एसओएपी सेवाओं के लिए उपयोग किया जाता है, न कि रीस्टफुल-स्टाइल वेब-सर्विसेज। – Dai

+1

यह आंशिक रूप से सत्य है, पेजमाइड्स विशेष रूप से AJAX परिदृश्यों में उपयोग किए जाते हैं, उन्होंने डिफ़ॉल्ट प्रकार – Jupaol

+0

पर प्रतिक्रिया प्रकार सेट किया है, क्या आप – Jupaol

उत्तर

12

आप आपकी मदद की जो इस समाधान करने के लिए नेतृत्व करने के लिए धन्यवाद @DaveWard और @CodeRoller:

  1. स्थापित ASP.NET अजाक्स एक्सटेंशन (HERE)
  2. System.Web के लिए संदर्भ जोड़ें। Extensions.dll
  3. संशोधित web.config ScriptModule HttpModule (देखें नीचे) को शामिल करने के

मेरा jQuery AJAX कॉल और WebMethod अभी भी मेरी मूल पोस्ट के समान है।

मेरे web.config नीचे के रूप में संशोधित किया गया है:

<system.web> 
    <compilation debug="true"> 
     <assemblies> 
     <!-- A bunch of other assemblies here--> 
     <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     </assemblies> 
    </compilation> 
    <httpModules> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </httpModules> 
    </system.web> 

मुझे आशा है कि किसी और को इस उपयोगी मिल जाएगा।

+0

आपकी पोस्ट मुझे मेरे एएसपी.नेट 2.0 वेब-एप्लिकेशन में जेसन भेजने में मदद करती है! धन्यवाद! – Roman

+0

@PostureOfLearning केवल अगर मैं आपको हजार अपवॉट दे सकता हूं !! –

+3

@ सूरजसिंह आपका स्वागत है। मुझे खुशी है कि पोस्ट दूसरों की मदद कर सकता है। मैं भी इस मुद्दे के साथ पागल हो रहा था ... =) – PostureOfLearning

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