我无法获得success: function(){}
工作 - 我正在使用的ajax代码是:
jQuery.ajax({
url: 'http://127.0.1/process_form.php'+data,
data: data,
dataType: "jsonp",
jsonp : "callback",
jsonpCallback: "jsonpcallback"
});
data
是一个简单的字符串,由jsonp传递,因为完成时会传递数据跨域。我知道GET的安全性和Curl会更好,但这是一个简单的“预定义”字符串,没有用户输入。数据只是来自4个链接之一的文本。即“是”“否”“不知道”“使这一部分成立”实际上也没有必要提供表格。
我将所有“数据”都存入数据库,但我无法实现的是基于成功的“下一个”位。如果我做一个简单的success: function(){}
没有任何事情(使用该功能),无论“什么”,例如警报等。
数据被发布到数据库应该发生什么(和什么样的排序),jQuery.getJSON
语句然后查询数据库并打印出所有数据,即所有输入的行,而不仅仅是最后一行。
当我说“有点工作”时,jQuery.getJSON会返回数据,但有时会“错过”,直到下次发送数据为止。在我看来,所有这些都与时间有关,因为如果我将“print”函数包含在setInterval()
中,整个过程就可以了。我真的不需要setInterval
来进行合作。
例如:
jQuery('.addinput').live('click',function(){
var fldID = new Date().getTime();
var fldType = jQuery(this).html().toLowerCase();
var data ='';
data += '?fldID='+fldID;
data += '&fldType='+fldType;
data += iptime;
jQuery.ajax({
url: 'http://127.0.1/process_form.php'+data,
data: data,
dataType: "jsonp",
jsonp : "callback",
jsonpCallback: "jsonpcallback"
});
jQuery('.loader').fadeIn('slow');
setInterval(function() { fn_form(iptime); }, 3000 );
jQuery('.loader').fadeOut('slow');
return true;
});
这样可行,但我真的不希望fn_form(iptime)
函数不断刷新。
我宁愿看到的是这样的:
jQuery('.addinput').live('click',function(){
var fldID = new Date().getTime();
var fldType = jQuery(this).html().toLowerCase();
var data ='';
data += '?fldID='+fldID;
data += '&fldType='+fldType;
data += iptime;
jQuery.ajax({
url: 'http://127.0.1/process_form.php'+data,
data: data,
dataType: "jsonp",
jsonp : "callback",
jsonpCallback: "jsonpcallback",
success: function(){
// run fn_form(iptime)
}
});
答案 0 :(得分:0)
您可以使用此alternative solution to jQuery's implementation of JSONP来简化JSONP调用。
jQuery-JSONP功能:
1-网络故障或格式错误的JSON响应时的错误恢复,
2-精确控制回调命名及其在URL中的传输方式,
同时运行相同回调名称的3个多个请求,
4-两种缓存机制(基于浏览器和基于页面),
5-就像任何其他AJAX请求一样手动中止请求的可能性,
超时机制。