jQuery无法获得成功的功能

时间:2011-02-17 14:26:18

标签: javascript jquery ajax jsonp

我无法获得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)
}
        });

1 个答案:

答案 0 :(得分:0)

您可以使用此alternative solution to jQuery's implementation of JSONP来简化JSONP调用。

jQuery-JSONP功能:
  1-网络故障或格式错误的JSON响应时的错误恢复,
  2-精确控制回调命名及其在URL中的传输方式,
  同时运行相同回调名称的3个多个请求,
  4-两种缓存机制(基于浏览器和基于页面),
  5-就像任何其他AJAX请求一样手动中止请求的可能性,
     超时机制。