这次给大家带来ajax交互时被报status=parsererror错误如何解决,解决ajax交互时报status=parsererror错误的注意事项有哪些,下面就是实战案例,一起来看一下。
原因:servlet 返回的数据不是 json 格式
1、js代码为:
var jsonstr = {'clusternum':2,'iterationnum':3,'runtimes':4};
$.ajax({
type: post,
//http://172.22.12.135:9000/json.json
url: /lshome/lshome,
datatype : 'json',
data : jsonstr,
success: function(data,textstatus){
if(textstatus==success){
alert(创建任务操作成功+data);
}
},
error: function(xhr,status,errmsg){
alert(创建任务操作失败!);
}
});
2、注意上面的 url 为 /lshome/lshome,(项目名称为lshome)所以在 web.xml 文件中,配置 servlet 如下:
<servlet>
<servlet-name>lshomeservlet</servlet-name>
<servlet-class>com.ys.servlet.lshomeservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>lshomeservlet</servlet-name>
<url-pattern>/lshome</url-pattern>
3、servlet 中代码为:
protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
//聚类数量
string clusternum = request.getparameter(clusternum);
//迭代次数
string iterationnum = request.getparameter(iterationnum);
//运行次数
string runtimes = request.getparameter(runtimes);
system.out.println(聚类数量为:+clusternum+---迭代次数:+iterationnum+---运行次数:+runtimes);
printwriter out = response.getwriter();
out.write(success);
out.close();
}
4、结果是一直都是进入到 ajax 方法里面的 error,而且status=parsererror
xhr = object {readystate: 4, responsetext: success, status: 200, statustext: ok}
5、解决办法:
原因是通过 response 对象返回的数据格式不正确,正确方法
printwriter out = response.getwriter();
string jsonstr = {\success\:\ok\};
out.write(jsonstr);
可以将返回值拼凑成 json 数据格式,然后会不会报status=parsererror
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
怎样用ajax实现弹窗登录
ajax+bootstrap优化网页用户体验的步奏
以上就是ajax交互时被报status=parsererror错误如何解决的详细内容。