我试图通过使用jQuery.ajax点击aspx的codebehind文件中的一些标签来调用SendInfo方法。但是它总是进入'错误'部分,而不是成功,而字符串不是从方法返回的。
那么请告诉我,我在这里做错了什么?
刚开始学习ajax。
Index.aspx:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type='text/javascript' src='../../Scripts/jquery-1.4.1.min.js'></script>
<script type="text/javascript" >
$(document).ready(function () {
$("#Result").click(function () {
$.ajax({
type: "POST",
url: "Index.aspx/SendInfo",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#Result").text(msg.d);
},
error: function () {
$("#Result").text("adas");
}
});
});
});
</script>
<div id="Result">Click here for the time.</div>
</asp:Content>
Codebehind文件:
public class Index : ViewPage
{
[WebMethod]
public static string SendInfo()
{
return "Info actually sended";
}
}
答案 0 :(得分:0)
快速浏览一下我会说这可能是由于“dataType”参数被设置为“json”。因为这告诉它你正在期待一个JSON对象,所以它会尝试解析响应,因此它会因为它是纯文本而失败。
你可以完全删除“dataType”参数(以及空的“data”参数),jQuery会冒失败对所返回内容的猜测,在这种情况下应正确预测响应是纯文本。
您可能还需要指定AJAX位置的完全限定URL,并将success function中的“msg.d”更改为“msg”,但这取决于服务器上设置的特定选项(“ .d“是Microsoft推出的安全功能。)