2011-02-02 14 views
6

zrobićAjax połączeń WebPage metoda nie działa

<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> 

A moja Script Manager jest

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

Ale kiedy wykonać wybierz funkcję mam nic ... żadnych wiadomości w ogóle.

dziennika błędu:

[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) 

I moja metoda internetowej:

<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 

Gdybym tylko zrobić ostrzegania (CallPageMethod ("SelectBook", sukces, porażkę, ........ ...)) Widzę "niezdefiniowany", ale co nieokreślone? Próbowałem debugować ten javascript, ale nie mogę go naprawić. To zadziałało i rozumiem, jak to musi działać, ale nie mam pojęcia, dlaczego jest na razie zepsuty i jak to naprawić. Pomóż mi z tym, proszę.

Niektóre więcej informacji

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 

dlaczego blisko?

Odpowiedz

4

Problem rozwiązany ....

<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 

spędzam 2 dni, aby zobaczyć, musi być wspólna> _ <

0

Mam ten sam problem z $ .ajax, nie wiem dlaczego, ale teraz używam $ .get() lub $ .getJSON() dla moich XMLHTTPRequests. Wydaje się, że jest jeszcze szybszy niż z funkcją $ .ajax().

+0

To samo z $ .get() lub $ .getJSON() :( – Cynede

+0

użyj firebug i sprawdź, czy jest tam jakikolwiek JSON jak wyjście ... – Axxxon

+0

po aktualizacji z dziennikiem błędów – Cynede

3

Czy można sprawdzić plik konfiguracyjny, to moduł zarejestrował

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

nie. Dodałem, ale wygląda na to, że nie pomogło to – Cynede

+0

btw: Nie mogę znaleźć takiego modułu z reflektorem. – Cynede

Powiązane problemy