2011-02-02 12 views
6

मैंअजाक्स कॉल वेबपेज विधि काम नहीं करता है

<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script> 

<script type="text/javascript"> 
    function CallPageMethod(methodName, onSuccess, onFail) { 
     var args = ''; 
     var l = arguments.length; 
     if (l > 3) { 
      for (var i = 3; i < l - 1; i += 2) { 
       if (args.length != 0) args += ','; 
       args += '"' + arguments[i] + '":"' + arguments[i + 1] + '"'; 
      } 
     } 
     var loc = window.location.href; 
     loc = (loc.substr(loc.length - 1, 1) == "/") ? loc + "Report.aspx" : loc; 
     $.ajax({ 
      type: "POST", 
      url: loc + "/" + methodName, 
      data: "{" + args + "}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: onSuccess, 
      fail: onFail 
     }); 
    } 

    function success(response) { 
     alert(response.d); 
    } 

    function fail(response) { 
     alert("&#1054;&#1096;&#1080;&#1073;&#1082;&#1072;."); 
    } 

    function select() { 

     ........... 

     CallPageMethod("SelectBook", success, fail, ...........); 
    } 
</script> 

करना और मेरी स्क्रिप्ट प्रबंधक

<asp:ScriptManager ID="ScriptManager1" 
EnableScriptGlobalization="true" 
EnableScriptLocalization="true" 
EnablePageMethods="true" 
EnablePartialRendering="true" runat="server" /> 

है लेकिन जब मैं चुनिंदा समारोह निष्पादित मैं सब पर कुछ भी नहीं मिला ... कोई संदेश नहीं।

त्रुटि लॉग:

[ArgumentException]: Unknown web method SelectBook. 
Parameter name: methodName 
    at System.Web.Script.Services.WebServiceData.GetMethodData(String methodName) 
    at System.Web.Handlers.ScriptModule.OnPostAcquireRequestState(Object sender, EventArgs eventArgs) 
    at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

और मेरे वेब विधि:

<WebMethod()> Public Function SelectBook(ByVal values As String, ByVal valuesG As String, ByVal valuesX As String, ByVal valuesXG As String) As String 
    '.... 
    Return If(((vals.Length = valsG.Length) And (valsX.Length = valsXG.Length)), SQLModule.UpdateAdvCode(vals, valsG, valsX, valsXG), "Ошибка чтения диспетчерских кодов") 
End Function 

मैं केवल अलर्ट (CallPageMethod ("SelectBook" करते हैं, सफलता, असफल, ........ ...)) मैं "अपरिभाषित" देख सकता हूं, लेकिन क्या अपरिभाषित ??? मुझे इस जावास्क्रिप्ट को डीबग करने का प्रयास किया गया था लेकिन इसे ठीक नहीं किया जा सकता था। यह काम किया गया था और मैं समझता हूं कि इसे कैसे काम करना चाहिए, लेकिन मुझे नहीं पता कि यह अभी क्यों टूटा हुआ है और इसे कैसे ठीक किया जाए। कृपया इसके साथ मेरी मदद करें।

कुछ अधिक जानकारी

Server ASP.NET Development Server/10.0.0.0 
Date Thu, 03 Feb 2011 11:30:51 GMT 
X-AspNet-Version 4.0.30319 
Cache-Control private 
Content-Type text/html; charset=utf-8 
Content-Length 3517 
Connection Close 

क्यों पास?

उत्तर

4

समस्या हल मॉड्यूल है ....

<WebMethod()> Public SHARED Function SelectBook(ByVal values As String, ByVal valuesG As String, ByVal valuesX As String, ByVal valuesXG As String) As String 
    '.... 
    Return If(((vals.Length = valsG.Length) And (valsX.Length = valsXG.Length)), SQLModule.UpdateAdvCode(vals, valsG, valsX, valsXG), "Ошибка чтения диспетчерских кодов") 
End Function 

> _ <

0

मुझे $ .ajax, dunno के साथ एक ही समस्या है, लेकिन अब मैं अपने XMLHTTPRequests के लिए $ .get() या $ .getJSON() का उपयोग कर रहा हूं। $ .ajax() फ़ंक्शन के मुकाबले तेज़ लगता है।

+0

$ .get() या $ .getJSON() :( – Cynede

+0

फ़ायरबग का उपयोग करें और जांचें कि क्या कोई JSON आउटपुट की तरह है ... – Axxxon

+0

त्रुटि लॉग के साथ अद्यतन पोस्ट – Cynede

3

2 दिन बिताने को देखने के लिए यह साझा किया जाना चाहिए, आप कॉन्फ़िग फ़ाइल की जाँच की है पंजीकृत

<httpModules> 
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
</httpModules> 
+0

नहीं। मैंने जोड़ा, लेकिन ऐसा लगता है कि इससे – Cynede

+0

बीटीडब्लू में मदद नहीं मिली है: मुझे परावर्तक के साथ ऐसा मॉड्यूल नहीं मिल रहा है। – Cynede

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