jquery中使用form插件提交表单后,返回json格式出错

jquery中使用form插件提交表单后,返回json格式出错

问题描述:

代码
[code="java"]




<br> function testSubmit(){<br> var options = {<br> dataType: &#39;json&#39;,<br> success: showResponse<br> };<br> $(&#39;#abc&#39;).ajaxForm(options);<br> }<br> function showResponse(data){<br> alert(data.a);<br> }<br>





提交


[/code]
a.jsp
[code="java"]
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
{a:111,b:222}
[/code]
回调函数没有执行,把dataType删掉就没问题了,但返回的是字符串格式,搞不清楚是什么原因,后来只能暂用eval函数代替了.,那位高人能指点一下,是什么原因.谢谢了

不用插件,直接提交看看

[code="js"]





<!-- -->
<br><br> function testSubmit(){<br> var form = $(&#39;#abc&#39;),<br> url = form.attr(&#39;action&#39;),<br> pdata = form.serialize();<br> $.post(url, pdata, function(r) {<br> showResponse(r);<br> }, &#39;json&#39;);<br> }<br><br> function showResponse(data){<br><br> alert(data.a);<br><br> }<br><br>









提交



[/code]

设置dataType为json格式 jquery 只能识别 [{a:111,b:222}] 这种json数据格式,

返回的JSON要有正确的格式 如: {"city":"beijing","postcode":"222333"}

a.jsp改成:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

{"a":"111","b":"222"}

服务端的数据生成可以使用json-lib生成标准的json格式

http://sourceforge.net/projects/json-lib/files/