我只想尝试使用jQuery进行简单的Ajax调用
这是我的JavaScript:
//Starts the game
function startGame() {
$.ajax({
type: "POST",
url: "Default.aspx/StartGame"
});
}
我的按钮:
<input type="image" value="twist..." src="images/play.png" class="playButton" onclick="startGame();return false;" />
和代码背后:
public partial class Default : Page
{
private static GameEngine GameEngine
{
get { return new GameEngine();}
}
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public void StartGame()
{
GameEngine.StartToPlay();
}
}
当我在Visual Studio中调试代码时,永远不会调用方法StartGame
。
任何人都可以向我解释这是什么问题吗?
答案 0 :(得分:0)
我不熟悉.net,但好像你的Javascript代码发出了POST请求,而后端只有一个GET处理程序。
通常,能够在每个层上调试功能是个好主意。例如,您可以检查您的请求是否已被触发(或分析Firefox上the Firebug extension的问题.Chrome和Safari具有类似的调试机制。
答案 1 :(得分:0)
来自:http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/
您缺少参数(contentType&amp; dataType)到$ .ajax:
function startGame() {
$.ajax({
type: "POST",
url:"Default.aspx/StartGame"
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json"
});
}
答案 2 :(得分:0)
我相信因为您将请求设置为POST而您没有发送任何POST数据,例如:
$.ajax({
type: "POST",
url: "Default.aspx/StartGame",
data: "name=John",
success: function(msg){
alert(msg);
}
});
如果你只是检索html,你应该使用:
$.ajax({
url: "Default.aspx/StartGame",
cache: false,
success: function(html){
//create the game html
$("#game").append(html);
}
});
答案 3 :(得分:0)
我将StartGame()设为静态,现在可以正常工作