Итак, мои веб-сайты до сих пор работали нормально, я не совсем уверен, что я изменил. У меня есть вызов jQuery AJAX, который отправляет код купона на сервер и извлекает номер (который является скидкой).
Однако веб-метод больше не запускается, вместо этого запускается 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, потому что его не следует вызывать и у него нет всех необходимых данных.
РЕДАКТИРОВАТЬ:
Все мои другие страницы, использующие веб-методы, работают нормально. Это просто эта страница.
Еще немного странного поведения: в хроме, как только я начинаю вводить «register.aspx», вызывается Page_load. Опять же, все мои другие страницы в порядке, и этого не происходит.