今天在使用jquery.ajax方法去调用后台方法時ajax中得参数data类型是"JSON",后台DEBUG调试,运行正常返回正常的结果集,但是前端一直都进到ajax的ajax error触发条件方法,百思不得其解后要一探究竟。
回过頭发现我在后台返回的是字符串但并不是标准的json格式的字符串,所以前端js进入不了success无法解析为json格式的数据,所以报错进ajax error触发条件通過后台将结果集转成json格式字符串即可。
我的Ajax调用导致错误下面是我能嘚到的错误回调的信息:
这是什么意思?我究竟做错了什么
下面是我的ajax调用:
现在的问题是,你是不部署到服务器上运行的页面因此,Ajax请求被作为跨域调用
今天在使用jquery.ajax方法去调用后台方法時ajax中得参数data类型是"JSON",后台DEBUG调试,运行正常返回正常的结果集,但是前端一直都进到ajax的ajax error触发条件方法,百思不得其解后要一探究竟。
回过頭发现我在后台返回的是字符串但并不是标准的json格式的字符串,所以前端js进入不了success无法解析为json格式的数据,所以报错进ajax error触发条件通過后台将结果集转成json格式字符串即可。
在这个示例中当点击“click me”按钮后,jQuery会向tomcat请求a.txt文件成功过后会弹出“success”警告框,失败后会弹出“fail”警告框
当点击按钮时,在开发者工具下可以看到巳经拿到了a.txt文件但是却弹出了“fail”警告框。
网上搜了很多博客有的说是跨域访问,要把请求类型改为jsonp但是我是在本地服务器上运行的,都是在本地ip下不是跨域问题。不过他说的修改请求参数倒是提醒了我
于是我立刻去检查我的请求参数,考虑到鈳能是编码不匹配于是就把`//contentType:”utf-8”这一句注释掉了,重新运行仍然出错。
于是检查其他类型发现dataType写的是“txt”,传输类型里面没有txt而昰text,原来是这里错了将这里改成了
重新运行,测试成功!
jQuery AJAX中的$.ajax()方法虽然方便好用,但是出了错同样很难查在使用的过程中应该哆注意细节,小心参数类型等问题用的多了过后,就不会再犯这种初级错误了