3

私はこのような最も簡単なajax呼び出しを行おうとしています:

<script type="text/javascript">
$.ajax({
    type: "POST",
    url: "module.aspx/testSub",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    async: false,
    success: function() {
        alert("Works!");
    },
    error: function(){
        alert("Error");
    }
});
</script>

そして、これが私のコードビハインドです

Public Sub testSub()
    lblTest1.Text = "HelloWorld!!!1!"
End Sub

ただし、常にエラーが返されます。

4

2 に答える 2

2

いくつかのこと。

まず第一に、エラーオブジェクトに関するもう少し多くの情報を取り戻すのに役立ちます。最良の方法は、エラー関数を更新してerror(jqXHR, textStatus, errorThrown)、「errorThrown」であるjqueryでサポートされている署名を処理することです。(このAPIドキュメントを参照してください)コードは、含まれていると次のようになる場合があります。

<script type="text/javascript">
$.ajax({
    type: "POST",
    url: "module.aspx/testSub",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    async: false,
    success: function() {
        alert("Works!");
    },
    error: function(jqXHR, textStatus, errorThrown){
        alert("Error:" + errorThrown);
    }
});
</script>

さて、これとは別に、あなたは道にいくつかの問題があると思います。DNN内では、モジュールは/ DesktopModules /ModuleName/内にあります。サービスメソッドを含むカスタムASPXページは、そこにあります。(注:カスタムaspxページを使用しておらず、ascx内でメソッドを実行している場合、それらを直接呼び出すことはできません。)

ほとんどの場合、URLは/DesktopModules/MyModule/module.aspx/testusbなどである必要があります。(また、適切な属性を使用して、メソッドをScriptServiceとしてマークしてください。)

于 2012-07-04T16:24:24.920 に答える
0

DNNの場合は、これを試してください。

// ASP.NET AJAXを使用してスクリプトからこのWebサービスを呼び出せるようにするには、次の行のコメントを解除します。[System.Web.Script.Services.ScriptService]

于 2016-12-28T11:03:35.397 に答える