servlet+jquery1.4.2(ajax error?)

Old_Yang 2011-05-19 10:13:17
servert 返回josn类型数据,前台使用jqurey ajax访问这个servlet,但$.ajax的error回调函数却执行了,如下:
$.ajax({
type:"POST",
url: "servlet/Add",
dataType:"json",
data:{"a":"你好"},
error:function(i){alert("error:"+i.responseText)}//这里成功的打印了从后台返回的数据{'a':'hello'}
//如果在error回调方法中执行,alert(arguments[1]),输出parseerror,转换错误,设置了dataType:"json",应该不会出这个问题散??
});
以下是响应头信息
Server Apache-Coyote/1.1
Content-Type text/plain;charset=UTF-8
Transfer-Encoding chunked
Date Wed, 18 May 2011 15:34:05 GMT
servert:
response.setContentType("text/plain;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("{'a':'hello'}")
求解???

jq用的是1.4.2,在公司也用的这个版本,应该没有bug。。
...全文
245 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Old_Yang 2011-05-23
  • 打赏
  • 举报
回复
说起来还真奇怪,我用同版本的jq,后台用python+django返回就没有任何问题。。。这个parseerror还真不知道怎么出来的。。虽然已结贴,看到的朋友还是可以研究下。分不重要,你懂的。
Old_Yang 2011-05-23
  • 打赏
  • 举报
回复
找到答案了,后台:response.setContentType("text/json;charset=UTF-8");
或response.setContentType("text/plain;charset=UTF-8")都可以,
jq也可以设置dataType="json",
关键在于这两个地方:
out.print("{\"s\":\"hello\"}");//这样写可以
out.print("{'s':'hello'}");//jq parseerror
这原因终于找到了,可这样的原因说不过去啊。。。。。。囧。。。
love1901 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wkqxlv 的回复:]

把dataType:"json"这句话去掉再试试,以前我也遇到过这个问题,不去设置dataType的类型,让dataType默认就好了。
[/Quote]
+1
wkqxlv 2011-05-20
  • 打赏
  • 举报
回复
把dataType:"json"这句话去掉再试试,以前我也遇到过这个问题,不去设置dataType的类型,让dataType默认就好了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧