2011-10-21 5 views
1

私は取得しています "NetworkError:500内部サーバーエラー - http://localhost:5963/default.aspx/Callを" jqueryのWebMethodのエラー

<html> 
    <head> 
     <script src="scripts/jquery-1.2.6-vsdoc.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#btn").click(function() { 
        $.ajax({ 
         type: "POST",`enter code here` 
         url: "default.aspx/Call", 
         data: "{}", 
         contentType: "application/json; charset=utf-8", 
         async: true, 
         dataType: "json", 
         success: function (msg) { 
          alert("sdsd"); 
         } 
        }); 
       }); 
      }); 

     </script> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 
      <asp:RadioButton runat="server" ID="btn" Text="A" /> 
     </form> 
    </body> 
</html> 
を使用して、このサーバ側の関数を呼び出すいたときに
[System.Web.Services.WebMethod] 
[System.Web.Script.Services.ScriptMethod] 
public static void Call(string value) 
{ 
    var x = value; 
} 
+0

サーバーコールをデバッグするとどうなりますか? –

+0

サーバコールに到達せず、javasriptエラーをスローします –

+0

WebMethod属性のみを残してScriptMethodを削除しようとしましたか? – Junaid

答えて

3

まず、サーバーコントロールのIDが間違っているため、このスクリプトは何も返しません。サーバーコントロールがレンダリングされると、IDが変更されます。 次を試してみてください:

$("#<%=btn.ClientID %>") 

別の問題があります。これが役立つ

data: "{'value': 'somevalue'}", 

希望:あなたには、いくつかのデータを渡す必要があるので、あなたは、オーバーロードされたWebメソッドを呼び出しています。

+0

を追加しました。 ClientID%> ")$("#btn ")と同じですが、今問題のオーバーロードがありました。 –

+0

@HusseinX問題が解決したら、この回答を受け入れるようにしてください。 – GregL

+0

データが正しい形式であることに注意する重要なポイント。私はこれで十分ではありません! (これにより1時間失われた)。 – diynevala

1

がこのパスscripts/jquery-1.2.6-vsdoc.jsはあなたが適切なjQueryのファイルを与えていますか?通常のライブラリとしてvsdocファイルをロードしようとしているようです。

+0

もちろん、ここに挿入するのを忘れましたが、確かに私は –

1

まず、FireBugコンソールを使用するだけです。それはエラーが何であるかを教えてくれるでしょう。

戻り値の型がvoidであるため、コードが機能しません。実際に何かをクライアントに返す必要があります。これを次のように変更してください。

[System.Web.Services.WebMethod] 
[System.Web.Script.Services.ScriptMethod] 
public static string Call(string value) 
{ 
    var x = value; 
    return x; // Silly example 
} 
関連する問題