Ajax不进行函数调用
本文关键字:函数调用 Ajax | 更新日期: 2023-09-27 18:06:31
我有一个ajax函数为:
function LoadTeacherObservationData(_CategoryID, _SearchText) {
alert("In here");
alert(_CategoryID);
alert(_SearchText);
flag = 1;
$.ajax({
url: "PP/getTeacherObservationData",
data: {
'CategoryID': _CategoryID,
'SearchText': _SearchText
},
dataType: "json",
type: 'POST',
cache:false,
success: function (data) {
OnlebelChange(_CategoryID);
$('#hdnCategoryID').val(_CategoryID);
$("#lvTeacherData").kendoListView({
dataSource: data,
dataBound: function(e) {
if(this.dataSource.data().length == 0){
//custom logic
$("#lvTeacherData").append("<h4> No record found.</h4>");
}},
template: kendo.template($("#lvTeacherData_Template").html())
});
},
error: function () {
alert("error in click");
}
});
}
我已经确保函数正在调用正确的参数,因为我已经通过警告框检查了它。
我的问题是它没有被渲染成:
PP/getTeacherObservationData如我在URL中提到的。
PP是我的控制器,getTeacherObservationData是我的函数。
我写了这个函数如下:
public JsonResult getTeacherObservationData(string CategoryID, string SearchText)
{
try
{
if (CategoryID == "1")
return Json(new TeacherObservation().ScheduledObserVations(SearchText));
if (CategoryID == "2")
return Json(new TeacherObservation().InProcessObservations(SearchText));
if (CategoryID == "3")
return Json(new TeacherObservation().CompletedObservations(SearchText));
return Json(new List<TeacherObservation>());
}
catch (Exception ex)
{
throw ex;
}
}
而不是调用这个函数ajax函数代码进入错误块,并给我警报:error in click
有什么问题吗?
请帮帮我。
我想通过ajax调用函数。
使用MVC4。
扩展我的评论:URL PP/getTeacherObservationData
是相对的,所以如果你目前不在网站的根目录中,那么这将不起作用。
使用正斜杠前缀/PP/getTeacherObservationData
将工作,如果你的网站是在域名的根。
你也可以用这个答案中的一个解决方案。例如ResolveUrl("~/")
来动态获取站点的根目录,这种方法更好,因为它更具可移植性。例如,如果您将站点从域的根目录移到目录中,这将继续工作,而不像硬编码根目录。
我不知道你正在使用什么PHP框架,但通常你不能只是return
一个值的AJAX调用,你必须输出它以某种方式将其发送回调用者。尝试使用echo
或print
代替返回。
为了防止进一步渲染(如果有的话),您应该在脚本回显指定的JSON后以某种方式结束脚本。
您还应该检查在firebug或类似控制台中呈现的输出,看看您是否得到纯JSON(您显然期望)或一些HTML包装内容,这些内容由php框架呈现并且无法解析。