5

以下のエラーが発生するため、ajaxを使用してJavaScriptを使用してhtmlページでWebサービスを呼び出しているときに、ここで正確な問題が何であるかを本当に理解できません。

リソースのロードに失敗しました: サーバーは 500 のステータスで応答しました (内部サーバー エラー)

Ajax コード:

function Image() {
    $.ajax({

        type: "POST",
        url: "WebService.asmx/GetImage",
        data: "{'sDB': '" + "sDB" + "'}", 
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnGetMemberSuccess,
        failure: function (errMsg) {
            $('#errorMessage').text(errMsg);  //errorMessage is id of the  div
        }
    });
    function OnGetMemberSuccess(data, status) {
        alert("data" + data.d);
        $("#MemberDetails").html(data.d);
        $('input[type=button]').attr('disabled', false);
    }
}

sDB は Null です。

ボタンクリックコード:

<input type="button" id="Button" value="Image" onclick="Image()" />

以前のプロジェクトで同じコードを使用しましたが、正常に動作しています。

Web サービス コード:

<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> <WebMethod()> _
Public Function GetImage()

    Dim cmd As SqlCommand = New SqlCommand
    Dim con = New SqlConnection("server = PROG19-PC;database = XIDBViews;Trusted_Connection = yes")
    cmd.Connection = con
    con.Open()
    Dim strQuery As String = ""
    Dim oSB As New StringBuilder
    Dim table As New Table()
    Dim tr As New TableRow()
    Dim td As New TableCell()
    Dim sFirstNameValue As String = String.Empty
    Dim sLastNameValue As String = String.Empty
    Dim DoBValue As String = String.Empty
    Dim sPhoto As String = String.Empty

    strQuery = "SELECT [sFirstName],[sLastName],[DoB],[sPhoto] FROM [XIDBViews].[dbo].[tblEmployee]  "
    cmd = New SqlCommand(strQuery, con)
    cmd.ExecuteNonQuery()
    Dim dr As SqlDataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
    oSB.Append("<table><thead><tr><th>" + " FirstName" + "</th><th>" + "Lastname" + "</th><th>" + "DoB" + "</th><th>" + "Party" + "</th><th>" + "Photo" + "</th></tr></thead>")
    While dr.Read()
        sFirstNameValue = dr("sFirstName").ToString
        sLastNameValue = dr("sLastName").ToString
        DoBValue = dr("DoB").ToString
        sPhoto = dr("sPhoto").ToString

        oSB.Append("<tbody id=tbodyid'>")

        oSB.Append("<tr>")
        oSB.Append("<td class=border1>")
        oSB.Append(sFirstNameValue)
        oSB.Append("</td>")

        oSB.Append("<td class=border1 >")
        oSB.Append(sLastNameValue)
        oSB.Append("</td>")

        oSB.Append("<td  class=border1>")
        oSB.Append(DoBValue)
        oSB.Append("</td>")

        oSB.Append("<td class=border1>")
        oSB.Append(sPhoto)
        oSB.Append("</td>")

        oSB.Append("</tr>")
        oSB.Append("</tbody>")
    End While
    dr.Close()
    con.Close()
    MsgBox(oSB.ToString)
    'Debug.Print(oSB.ToString)
    Return oSB.ToString()
End Function
End Class

しかし、このWebサービスコードは正常に機能しており、私の知る限り、問題はajaxコードにあります。誰か助けてください。乾杯。

4

2 に答える 2

4

要求している URL をブラウザに直接挿入しようとしましたか? というエラー メッセージが表示されます。

「スクリプトから呼び出すことができるのは、クラス定義に [ScriptService] 属性を持つ Web サービスのみです」

[ScriptService] 属性をサービス クラス定義の先頭に追加すると、問題が解決する場合があります。

私は同様の問題を抱えていましたが、それは私にとってはうまくいきました:D

于 2013-05-25T09:37:40.443 に答える