好吧,所以我的网站一直在正常工作到现在,我不确定我改变了什么。我有一个jQuery AJAX调用,发送优惠券代码到服务器,并检索一个数字(这是折扣)。页面加载被解雇,而不是网络方法
虽然Webmethod不再被解雇,但webmethod所在页面的Page_load被解雇了。为什么?我可以检查什么?我能做什么?
这里是我的处理程序,当按钮被点击
$('div#code_apply_btn').click(function() {
$(this).html('PLEASE WAIT');
getpromocode();
});
这里是AJAX调用
function getpromocode(){
var pcode = $('input#input_circuitcode').val();
var hid = parseInt($('input#ss_id_h').val());
$.ajax({
type: "POST",
url: "register.aspx/get_promocode",
data: '{"promo":"' + pcode + '", "uid":' + hid + '}',
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (msg) {
if (msg.d != -1) {
applydiscount(msg.d);
$('div#reg_circuit').show();
$('div#circuit_promo').hide();
$('div#reg_circuit').click();
}
else {
$('input#input_circuitcode').val('');
$('div#code_apply_btn').html('APPLY CODE');
}
},
error: function (msg) {
alert(msg);
}
});
}
这里将WebMethod
[WebMethod]
public static int get_promocode(string promo, int uid)
{
return DAC.GetPromoCode(promo);
}
将WebMethod不会被调用,但Page_load事件触发并遍历所有内容,然后得到500错误,因为它不应该被调用并没有它需要的所有数据。
编辑:
所有我使用网络方法的其他网页正常工作。这只是这个页面。
另一个奇怪的行为:一旦我开始键入“register.aspx”,chrome就会调用Page_load。我所有的其他页面都很好,这种情况不会发生。
你确定这个js代码被调用,你没有做一个完整的回发未被注意到吗? (例如,由于按钮点击) – 2012-03-26 01:44:16
@ClaudioRedi我很确定,我用调用AJAX函数的处理程序更新了我的答案。返回的500错误通过AJAX调用中的错误变量返回。该页面不会更改。 – 2012-03-26 01:51:57
在进行邮政通话之前,请检查pcode和hid变量的含义 – 2012-03-26 02:02:49