jquery中使用form插件提交表单后,返回json格式出错
问题描述:
代码
[code="java"]
<br> function testSubmit(){<br> var options = {<br> dataType: 'json',<br> success: showResponse<br> };<br> $('#abc').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函数代替了.,那位高人能指点一下,是什么原因.谢谢了
答
<!-- -->
<br><br> function testSubmit(){<br> var form = $('#abc'),<br> url = form.attr('action'),<br> pdata = form.serialize();<br> $.post(url, pdata, function(r) {<br> showResponse(r);<br> }, 'json');<br> }<br><br> function showResponse(data){<br><br> alert(data.a);<br><br> }<br><br>
提交
不用插件,直接提交看看
[code="js"]
<!-- -->
<br><br> function testSubmit(){<br> var form = $('#abc'),<br> url = form.attr('action'),<br> pdata = form.serialize();<br> $.post(url, pdata, function(r) {<br> showResponse(r);<br> }, 'json');<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格式