怎么看ajax执行了没,$.ajax 没有执行

场景:求解Ajax中$.getJSON为啥没有执行

求解Ajax中$.getJSON为什么没有执行

在使用Ajax进行级联是遇到了一个问题,求各位帮帮忙,给小弟指点一下

12173925.gif

HTML代码片段:

课程名称:

----请选择课程----

${courseInfo.courseName }

考试状态:

----请选择试卷状态----

JS代码片段:(已经载入了jQuery库)

$(function(){

/*

* 下拉列表的级联

*/

// 1.获取 #tempName,给其添加 change 事件

$("#tempName").change(function(){

// alert("选择课程...");

// 2. 获取 #paperState ,使其只保留第一个子节点

$("#paperState option:not(:first)").remove();

// alert("获取 #paperState ,使其只保留第一个子节点");

// 3.获取 #tempName 的值,若该值为“”,则说明选择了“请选择”,则不需发送 Ajax 请求

// 若不为空,则准备发送 Ajax 请求

var tempName = $("#tempName").val();

// alert("#tempName 的值 = " + tempName);

if(tempName != ""){

//alert("不为空,准备发送 Ajax 请求...");

var url = "${pageContext.request.contextPath }/exam/LaunchExam_getPaperState.do";

var args = {"courseName": tempName, "time":new Date()};

// 发送请求

// alert("发送请求");

$.getJSON(url, args, function(data){

alert("data:" + data);

});

}

});

});

Action中的方法:

/**

* 获取“试卷状态”方法:用于获取试卷的状态,“已发布已考”还是其他。

* 此处是级联操作使用的方法。

* 注意:级联完毕后,要以表单的形式显示所有符合条件的数据信息

* 级联:课程名称--->考试状态。二级联动

* @return

*/

public String getPaperState(){

System.out.println("准备获取“试卷“状态...");

String courseName = "";

// 获取 Ajax 请求中的参数

try {

response.setCharacterEncoding( "UTF-8" );

courseName = request.getParameter("courseName");

courseName =  new String(courseName.getBytes("ISO8859-1"),"utf-8");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

System.out.println("课程号:" + courseName);

// 根据该参数,获取 MakePaper_PaperInfo 中的信息

// 此处:o.courseName中的 o是表的别名,这是在 commonDaoImpl 中定义的

String condition = " and o.courseName = ?";

Object[] params = {courseName};

// 根据courseName 查 课程表(Course_CourseInfo),获取课程号

List courseInfos = courseInfoService.findCourseInfoByConditionNoPage(condition, params, null);

System.out.println("courseInfos size is:" + courseInfos.size());

// 获取 courseInfos 中的 courseCode 字段

Object[] codeParams = new Object[courseInfos.size()];

System.out.println("正在获取courseCode......");

for(int i = 0 ; i 

CourseInfo c = courseInfos.get(i);

System.out.println("第" + i + "个CourseInfo为:" + c);

codeParams[i] = c.getCourseCode();

System.out.println("code" + i + " = " + codeParams[i]);

}

// 根据 codeParams 到 考试表(MakePaper_PaperInfo)中获取信息

condition = " and o.courseCode = ?";

System.out.println("condition:" + condition);

List paperInfos = paperInfoService.findPaperInfoByConditionNoPage(condition, codeParams, null);

System.out.println("paperInfos的size是:" + paperInfos.size());

// 将 paperInfos 对象转为 JSON 对象

ObjectMapper mapper = new ObjectMapper();

try {

String result = mapper.writeValueAsString(paperInfos);

System.out.println("result:" + result);

response.setContentType("text/javascript");

response.setCharacterEncoding("UTF-8");

response.getWriter().print(result);

} catch (JsonProcessingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return "getExamStateSuccess";

}

程序运行后,控制台中的打印的JSON信息:

result:[{"paperID":3,"courseCode":3,"questionCode":"000003000003","paperName":"2014上学期C语言期考","makeType":"自动组卷","paperScore":100,"degree":3.0,"examDate":150,"paperStatus":"已发布已考","creater":"johnnie","createDate":"2014-04-29","remark":null}]

可以看到,我的Action方法是有JSON格式数据返回的,但是请求转发到显示的页面中,Ajax操作中的$.getJSON方法,没有任何反应,连最基本的alert弹窗都没有,这令我好疑惑。希望大家指点一下,不甚感激。

------解决方案--------------------

打开js调试看看,多数是js错误了

------解决方案--------------------

alter调试就挺实用的,你说alter都弹不出来了,就换换位置再试试。

例如:

alter("OK1");

................................................

................................................

........你的代码

...............................................

alter("OK2");

这种方式可以定位你代码出错的位置。

------解决方案--------------------

打开js调试看看,多数是js错误了

------解决方案--------------------

getJSON接收的响应头必须是application/json楼主你的response.setContentType("text/javascript");改成

response.setContentType("application/json");

------解决方案--------------------

试试楼上的的。application/json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值