0
我的ajax調用僅在第一次運行。之後,我得到一個方法不允許的例外。 這裏是我的Java腳本代碼:Jquery Ajax Call只能工作一次,直到我重新啓動應用程序
$('.AppFormFormNewOT').submit(function() {
var formID = $(this).attr('id');
var appDate = $('#' + formID + ' .dateHiddenInput').val();
var appMit = $('#' + formID + ' .mitHiddenInput').val();
var am = $('#' + formID + ' .amCheckBox').attr('checked');
var pm = $('#' + formID + ' .pmCheckBox').attr('checked');
if (!am && !pm) {
alert("Bitte geben Sie einen Halbtag an");
return false;
}
var vorOrNach;
if (am == 'true,false') {
vorOrNach = 'FirstHalfDayHasAppointment';
} else {
vorOrNach = 'SecondHalfDayHasAppointment'
}
var url = 'Plan/' + vorOrNach + "/";
var occupied = true;
$.ajax({
type: 'POST',
url: url,
datatype: 'text',
async: false,
data: {
date: appDate,
id_person: appMit
},
success: function (data) {
occupied = data;
if (occupied == "True") {
alert("Hier ist bereits ein Termin");
return false;
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('Ajax error');
alert(textStatus);
alert(errorThrown);
return false;
}
});
if (occupied == "True" || occupied == true) {
return false;
} else {
return true;
}
});
它調用的方法很簡單:
[ScriptMethod][HttpPost]
public string FirstHalfDayHasAppointment(DateTime date, int id_person)
{
bool hasApp = repo.dateWithPersonAlreadyHasApp(date, id_person, HalfDay.AM);
return hasApp.ToString();
}
[ScriptMethod][HttpPost]
public string SecondHalfDayHasAppointment(DateTime date, int id_person)
{
bool hasApp = repo.dateWithPersonAlreadyHasApp(date, id_person, HalfDay.PM);
return hasApp.ToString();
}
當我重新啓動應用程序(不只是重新加載頁面),又是第一個電話工程及任何後續通話再次失敗。
編輯:當我剛剛在函數返回true Ajax調用總是成功:
[ScriptMethod][HttpPost]
public string FirstHalfDayHasAppointment(DateTime appDate, int id_person)
{
return "True";
}
[ScriptMethod][HttpPost]
public string SecondHalfDayHasAppointment(DateTime appDate, int id_person)
{
return "True";
}
所以,問題似乎是在服務器端。但我不知道這與ajax有什麼關係,以及爲什麼ajax返回一個不允許異常的方法。希望這些信息很有用。謝謝你的幫助。
設置'async:false'的任何理由?這是殺死AJAX的全部目的。事實上,這不是AJAX。這是SJAX。還有'[ScriptMethod]'?在ASP.NET MVC中?爲什麼?有一些控制器動作應該在ASP.NET MVC中使用。 – 2012-01-11 14:36:44
據我所知,如果我不將它設置爲false,表單將立即提交。 – Luke 2012-01-11 14:40:07
不,如果您從提交處理程序返回false,它將不會立即提交。 – 2012-01-11 14:40:29