1

この記事に従って、jQuery AJAX を使用して webmethod から値を取得しようとしています。1入力フォームに切り詰めました。

つまり、常に失敗し、msg.d は常に未定義です。Firebug では、POST を確認でき、データ文字列が正しくフォーマットされています。私の人生では、なぜこれが失敗し続けるのか理解できません。webmethod に設定されたブレークポイントにヒットしましたが、ページが完全に実行される前に失敗メッセージが表示されます。

何が起こっているのですか?これが私のコードです:

基本形:

<div id="contact">
    <ul>
        <li><div>Name*</div>
        <input name="ctl00$ContentPlaceHolder1$txtName" type="text" id="ctl00_ContentPlaceHolder1_txtName" />
        </li>               
        </ul>
        <ul class="submit">
            <li>* required</li>
            <li class="submit_button">

        <input type="submit" name="ctl00$ContentPlaceHolder1$btnSubmit" value="Submit"     id="ctl00_ContentPlaceHolder1_btnSubmit" />
            </li>
        </ul>
   </div>

jQuery:

<script type="text/javascript">

    jQuery(document).ready(function () {

        $("#ctl00_ContentPlaceHolder1_btnSubmit").click(function () {
            var name = $("#ctl00_ContentPlaceHolder1_txtName");
            $.ajax({
                type: "POST",
                dataType: "json",
                contentType: "application/json",
                url: "Default.aspx/SendEmail",
                data: "{'name':'" + name.val() + "'}",
                success: function (msg) {
                    alert("success");
                    alert(msg.d);
                },
                error: function (msg) {
                    alert("fail");
                    alert(msg.d);
                }
            });
        });

    });

</script>

ウェブ方法:

[WebMethod]
public static string SendEmail(string name)
{
    return "success";
}
4

1 に答える 1

-1

dataTypeAJAXが探しているJSON ではなく、 server から文字列を返しています。String にはプロパティがありませんd

dataTypeオプションを削除して試してくださいalert(msg)

于 2013-01-21T13:39:42.747 に答える