出生证明数据ajax请求超时回调函数成功,但回调错误

type : "post",
dataType:"json",
async: true,
url : "adddata_action.jsp",
data : paras,
success: function(data) {
if(data.response=='success')
alert(data.message);
$("#arrange_sheet").dialog("close");
alert(data.message);
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("error");
$("#dialog-message_failed").dialog("open");
adddata_action.jsp中返回数据语句:
out.println("{\"response\":\"yes\",\"message\":\"信息录入成功!\"}");求帮助啊!------解决方案--------------------
error : function(XMLHttpRequest, textStatus, errorThrown) {alert(XMLHttpRequest.responseText);}就明白错误信息了;
关于error返回值的有关问题
关于error返回值的问题把下面这个代码放在form.init里面,初始化的时候就判断端口号时候可以打开。ON ERROR Do CommErrorHandle WITH ERROR(),MESSAGE( )For i = 1 To 4
mPort = i &&指定端口号
crl.portOpen = .T. &&尝试打开NextON ERROR***CommErrorHandle.prg*****PROCEDURE CommErrorHandlePARAMETER nError,messCLEAR? 'Error number: '+ ALLTRIM(STR(nError))? messENDPROCnError返回值为什么是0??mess显示是“端口号无效”------解决方案--------------------
1429 是 vfp 的错误号,表示 OLE 类型的错误要获取原始错误号,可在 CommErrorHandle 中用 aerror 来获取,详情参考 aerror 函数的帮助内容PROCEDURE CommErrorHandlePARAMETER nError,messif inlist(nError,) local atemp[1] aerror(atemp) ? aTemp[7] ? aTemp[3]else CLEAR ? 'Error number: '+ ALLTRIM(STR(nError)) ? messendifENDPROC
回调函数地址,该怎么处理
回调函数地址SetWindowLong(hWnd,GWL_WNDPROC,AddressofFunc)替换窗口回调函数来截取window消息,如何取得函数地址,vfp有没有取函数或对象方法的地址的?请高手指教!------解决方案--------------------
vfp 没有对回调函数的原生支持,但你可以使用第三方的扩展函数库,例如下面这个:/releases/view/71594下载解压后,参考示例 ccallback.prg 中是如何调用 EnumWindows 的,这个 api 的第一个参数就是一个回调函数。
如果您想提高自己的技术水平,欢迎加入本站官方1号QQ群:&&,&&2号QQ群:,在群里结识技术精英和交流技术^_^
本站联系邮箱:jquery ajax请求成功,返回了数据,但是不进success的问题 【转】 - 金-Fish - 博客园
&&&&& 这几天一直被 ajax请求成功,返回了数据,但是不进success的问题困扰着,怎么弄就是解决不了,总以为 是:$(document).ready(function(){});没起作用,一直找页面加载的方法来试,整了好几天没整出来....今天比较幸运, 在网上找到了一篇关于这方面问题的文章,按上面的方法一试,果然ok了,哈哈哈,真是太高兴了....终于解决这个问题了。
这个问题的原因(来自/ajax/413061.html的拷贝内容):
--------------------------拷贝内容 start ----------------------------------------------------
& & 1.状态码返回200--表明服务器正常响应了客户端的请求; &&&&& 2.通过firebug和IE的httpWatcher可以看出服务器端返回了正常的数据,并且是符合业务逻辑的数据。 & & & & && 但是,程序就是不进入到回调函数success: function(data){****}而是进入到error: function(data){***} & & 记得上次是因为存在跨域访问的问题导致。这次查看不存在跨域的问题。此时就很是不解。 &&&&&&&&& 事情的来源是这样的: 后台的配置管理模块中有一块是关于国际化的配置,增加国际化描述等等,查询国际化描述。
&&&&&&&& 问题的来源是在输入key='a'
查询前十条数据时发现可以正常的展现数据,但是当我输入key值为z时,并且再查询前20条数据是发现数据不能展现,但是server返回了数据库中的数
据。这时第一反应是事不时数据返回的有问题,粗略的检查了返回的数据发现和第一次查询没有什么明显的区别。但是只查询第十四条数据时发现,显示不出来。这
时候就开始怀疑了数据问题,进而到数据库中查找第十四条数据没有发现什么特别的地方。 &&&& 这时开始怀疑,难道是JS程序有处理数据兼容性有问题,觉得甚是不可思议。整了大约半小时,越来越觉得不大可能。就放弃了这种想法。 &&&& 有转向,重新审视数据。 但是发现数据从中间换行了,没太在意。 在纠结了一会儿后问一同事,指出数据可能多了一个"回车键",在其指点下到数据库表中再次查看该条数据发现有一个字段的值多了一个"回车键"。删除后,一切恢复正常。 &&&& 思考第一次和第二次碰到的问题,我初步认识到: &&& 1. 返回的数据类型一定要符合定义的数据类型。即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,平且不然就会执行 error 里的程序块儿。 && (1) 同时需要特别的注意返回的JSON数据是否是严格的JSON格式. && (2) 也应该严重关切当后台返回的是一个List 数据(List当中的数据是Json格式)时,有没脏数据即不是严格的JSON格式。 &&& 很隐蔽的可能是数据某一个字段中在开始或末尾含有特殊字符,以"回车键"、"Tab键"等 &&& 这类隐蔽错误的规避措施就是好的编程习惯: a. 对于在页面填写入库的数据最好强制性的做,去空操作&利用客户端最好&。 b. 特殊的业务需注意特殊字符。 && 这样还不够,因为在开发过程中测试或开发人员自己在数据库中手动添加数据,可能会多加了空格等,导致程序调试,测试带来了麻烦。 这时就需要考虑在后台代码对获取的数据做处理。 &&&&& 2. 原因是ajax请求跨域了,解决方法是在两个文件里都添加一段 js: [/b]document.domain,或者采用Jsonp的方式,如我的前一篇blog中提到的。 还有一点对JQuery 中Ajax的一点其它的认识: 客户端发起请求,得到服务器端的相应是200,&正确拿到服务器响应的数据&没有问题.此时在判断进入success 对应的回调函数还是进入到error对应的回调函数之前,可能会校验一些东西: &&&&& 1. 返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的按照dataType定义的类型,程序就会进入到error:function(){****} &&&&& 2. 请求的域和当前域是否是同一域,如果不是同一域也十分有可能进入error:function(){***}&& &&
&---------------------------end --------------------------------------------------------------------------
&&& &&& 通过看了这段内容后,我再对照我的ajax
看了一遍,发现我少配了一个属性(dataType属性)因为我数据类型返回的是json类型,而我这边没有配dataType:'json',这一属
性,所以导致出现了此问题。不过, 困扰我这么久的问题终于解决了,下次得万分小心才是,该配置的东西还是得配置,不能偷懒。ajax请求返回的数据看不到回调函数没有执行也没报错
字体:[ ] 类型:转载 时间:
ajax请求返回的数据看不到回调函数没有执行,哪里都没有报错,有类似情况的朋友可以参考下本文
项目用的是ssh,使用jquery的$.post访问struts2的Action,哪里都没有报错,可就是没有结果。 现在$.post要返回保存着权限的集合Collection&Privilege&,权限类Privilege和用户类User相互关联,也就是Privilege里使用set集合保存着拥有这个权限的用户Set&User&,用户User里也使用set集合保存着用户有的权限Set&Privilege&。数据都到action里了,但是回调函数没有执行,并且使用浏览器调试也没看到返回的数据,最后找了半天,原因如下: jquery在解析返回的Collection&Privilege&集合时,看到里面有一个Set&User&,就会去得到集合中的数据,但是Collection&Privilege&是service里的一个方法返回的,而这个时候spring的事务已经结束,也就不会查到Set&User&中的数据。jquery解析空的集合就会出错,所以得不到数据。 解决办法:在Privilege里的getUser()方法加上这个注解@JSON(serialize=false),这样jquery在解析的时候就会忽略这个集合中的数据。当然,如果数据要用到,那就要在service中把这些数据先查到,放到集合中。
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具解决使用ajaxFileUpload上传控件出现的有关问题:回调函数总是进入error或success - Ajax当前位置:& &&&解决使用ajaxFileUpload上传控件出现的有关问题:回解决使用ajaxFileUpload上传控件出现的有关问题:回调函数总是进入error或success&&网友分享于:&&浏览:0次解决使用ajaxFileUpload上传控件出现的问题:回调函数总是进入error或success
上周说到做excel的导入时,用到了jquery的一个上传控件ajaxFileUpload,但今天测试的时候,却出现了问题:
我们不妨先来查看一下ajaxFileUpload的基本语法:
$.ajaxFileUpload
secureuri:false,
//上传处理地址
fileElementId:'fileToUpload',
//上传文件的id
dataType: 'json',
//传输的数据类型,默认为text
//成功响应后回调的函数
data为后台返回的数据 status为成功或失败状态
success: function (data, status)
//some code
//响应失败后回调的函数
e为错误信息
error: function (data, status, e)
结果我发现,是无论后台响应是否成功,它都是进入回调函数error:
而我本地写的上传的js如下:
$.ajaxFileUpload({
url : "demo/import.json",
//dataType : 'json',
secureuri : false,
fileElementId : 'file',
success : function(res, status) {
//some code
error : function(data, status, e) {
//some code
后来发现,我竟然把dataType注掉了。。,并且无论后台是否响应成功,都进的是error回调……因此我把dataType指定为json,
而检查我的后台,发现
我用的google浏览器,debug才发现demo/import.json所对应的后台代码:
@RequestMapping("/demo/import.json")
@ResponseBody
public String import(@RequestParam(value = "excelFile") MultipartFile excelFile,
HttpServletRequest request) {
String fileName = excelFile.getOriginalFilename();
String result = "";
//some code
result = "success";
} catch(Exception e) {
e.printStackTrace();
result = "fail";
返回的是String,该String并不是json格式的。改之:
@RequestMapping("/demo/import.json")
@ResponseBody
public String import(@RequestParam(value = "excelFile") MultipartFile excelFile,
HttpServletRequest request) {
String fileName = excelFile.getOriginalFilename();
String result = "";
Map map = new HashMap();
String jsonStr =
//some code
result = "success";
} catch(Exception e) {
e.printStackTrace();
result = "fail";
map.put("data", result);
jsonStr = String.valueOf(JSONObject.fromObject(map));
return jsonS
而之前前台没指定dataType,因为传输的数据类型对应不上,所以无论成功与否都会进入error。
同样模拟测试后台响应成功和响应失败,问题依然出现。。
看到网上说的,可能是ajaxfileupload.js版本的问题,即里面判断返回数据类型的js函数:
uploadHttpData: function( r, type ) {
var data = !
data = type == "xml" || data ? r.responseXML : r.responseT
// If the type is "script", eval it in global context
if ( type == "script" )
jQuery.globalEval( data );
// Get the JavaScript object, if JSON is used.
if ( type == "json" )
eval("data = "+data);
// evaluate scripts within html
if ( type == "html" )
jQuery("&div&").html(data).evalScripts();
//alert($('param', data).each(function(){alert($(this).attr('value'));}));
这个js函数表明,当type为json时,直接把回调函数参数里的data指定为后台给你返回的data,但通过google浏览器debug这个方法才发现即使后台返回值类型改成json格式的String,并指定前台dataType属性为json时,获取到的data为&pre style="word-wrap: break- white-space: pre-"&{"data":"success"}&/pre&他并不是从后台获取到纯json格式的字符串,改正:
if ( type == "json" )
eval("data = "+$(data).html());
清除浏览器缓存,重测,即可得到中间的json 串{"data":"success"}。
这样,无论后台响应成功与否,它不会只进入error了。
但现在问题又来了,虽然不会只进入error但是问题又来了。。无论是否响应成功,它又只进入success回调了,感觉很无语。
同样,通过debug,发现前台回调时,即使后台响应失败,也会给前台返回一个json {”data:“ "fail"},只要有json,他就会进入success。虽说我可以通过在success里取data对应的值,根据data对应的值是success还是fail判断到底是成功响应还是失败响应,但终归不太合理。仔细检查后台代码后,改之:
@RequestMapping("/demo/import.json")
@ResponseBody
public String import(@RequestParam(value = "excelFile") MultipartFile excelFile,
HttpServletRequest request) {
Map map = new HashMap();
String jsonStr =
//some code
result = "success";
map.put("data", result);
jsonStr = String.valueOf(JSONObject.fromObject(map)); //只有响应成功才会得到json格式的字符串——前台进入success回调
} catch(Exception e) {
e.printStackTrace();
result = "fail";
//map.put("data", result); //如果响应失败,则不会生成json格式的字符串,返回的就只是一个空的String而已——前台进入error回调
return jsonS
再次模拟成功和失败响应之后,终于”各找各妈“了——成功响应的进入success回调,响应失败的进入error回调。。
小结:如果是传输类型是json格式,如果后台返回的不是json格式的字符串,则前台只会进error回调;如果后台返回的是json格式的字符串,但如果响应失败也给他返回一个json字符串时,前台也会进入success回调。
推荐一个相对稳定的ajaxFileUpload.js版本下载(见附件):
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有}

我要回帖

更多关于 http 请求回调 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信