我在jsp页面中使用 $.getJSON方法如下:
$.getJSON("<%=basePath%>/query/showSample?gseId="+gseId+"&lineNum="+lineNum+"&pageNo="+pageNo, function(data) { alert('a'); });
showSample是我在sturst中配置的action
但是这里的function就是不能进入到 alert 这一步
在浏览器中 判断 action返回的状态是 200,没问题
在网上查询后 都说是 后台返回的格式有问题 返回的数据不是jquery能识别的json
json数据的key必须加引号,否则$.getJSON方法解析不了,就不会调用回调函数
例如:{username:"test"}这样子是不能jquery被转换的,必须用{"username":"test"}.
也就是说 标题和 value都必须带 双引号
如果是自己构造的 json的话 就要用反斜杠 如下:
String value = "{/"results/":[{/"name/":/"Peter pan/",/"to/":/"peter@陈.de/"},"
但是
我这里是 action本身构造的 json
把sturts的配置改成 json后 发现 格式没问题
{"gseId":"GSE42328","lineNum":"12","pageNo":"1","sampleCountString":"第0-12项,共53项","sampleResult":"<table class='gridtable'><tr><th>标准组<\/th><th>对照组<\/th><th>编号<\/th><th>描述<\/th><\/tr><\/table>"}
是带双引号的
这种情况下 其实是我们的strust配置有问题
我这里配置的是 jsp跳转 并不是返回的json格式
<action name="showSample" class="showSampleAction"> <result name="success">/gse.jsp</result> </action>这种情况下 返回的不是json
所以 不会进入function函数
需要把配置改成
<action name="showSample" class="showSampleAction"> <result type="json"></result> </action>