ОК, так что до сих пор мои сайты работали нормально, я не совсем уверен, что я изменил. У меня есть вызов jQuery AJAX, который отправляет код купона на сервер и получает номер (который является скидкой).
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]
public static int get_promocode(string promo, int uid)
{
return DAC.GetPromoCode(promo);
}
Веб-метод никогда не вызывается, но событие Page_load запускается и проходит через все, затем он получает ошибку 500, потому что он не должен вызываться и не имеет всех необходимых данных.
EDIT:
Все остальные мои страницы, которые используют веб-методы, работают нормально. Это просто эта страница.
Еще одно странное поведение: в chrome, как только я начинаю набирать «register.aspx», вызывается Page_load. Опять все мои другие страницы в порядке, и этого не происходит.