この記事に従って、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";
}