长时间的WinForm程序员在这里,但新的Web编程场景。我有Visual Studio 2010,并创建了一个新的WebSite项目。 我似乎无法让ajax调用我创建的webmethod。当我点击页面上的按钮时,根本没有任何反应。Web方法不是由jQuery的JavaScript函数调用
它看起来像jquery 1.4.1会自动添加到脚本文件夹中,当我创建一个WebSite项目。
Default.aspx中我加2个脚本标签:
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript" src="Scripts/Process.js">
我把一个按钮在页面上,其中的onclick功能在Process.js定义:
<input id="btnTest" type="button" value="Test" onclick="btnTest_onclick()" />
过程中。 JS我有以下代码:
function btnTest_onclick() {
var strData = JSON.stringify({
userid: 5
});
alert(strData);
$.ajax({
url: 'Default.aspx/GetData',
type: "POST",
data: strData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: Success,
failure: Failure,
async: true
});
}
function Success(data) {
alert("success");
}
function Failure(data) {
alert("failure");
}
在Default.aspx.cs:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod()]
public static string GetData(int id)
{
return "hello, my id is " + id;
}
}
你知道...你可以随时'控制台来获取最新的稳定版本的jQuery(或使用UI做同样的,甚至通过更换脚本做手工更新,包jquery'文件) – MilkyWayJoe
也在[$ .ajax](http://api.jquery.com/jQuery.ajax/)中,正确的回调是'error'而不是'failure'。替换那个。 – MilkyWayJoe
1.4.1不稳定?我想因为MS似乎自动为你包括它,我认为它必须是稳定的。这有效地告诉我,它是失败的,谢谢。现在我需要弄清楚为什么它失败:) – user441521