2011-02-17 92 views
2

我無法得到一個success: function(){}工作 - 我使用的AJAX代碼是這樣的:jQuery的不能獲得成功,函數工作

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語句然後查詢數據庫並打印出所有數據,即所有輸入的行,而不僅僅是最後一個。

當我說「sort of works」時,jQuery.getJSON會返回數據,但有時會「丟失」,直到下次發送數據爲止。在我看來,所有這些都與時間有關,因爲如果我在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

這是什麼需要? `url:'http://127.0.1/process_form.php'+data, data:data,` – Harish 2011-02-17 15:14:32

回答

0

您可以使用此alternative solution to jQuery's implementation of JSONP它簡化了JSONP調用。

jQuery的JSONP特徵:在網絡故障或不當形成JSON響應的情況下
1-錯誤恢復,
2-超過回調命名精確控制以及它是如何在URL發送
3 - 用相同的回調名稱同時運行,
4- 2緩存機制的多個請求(基於瀏覽器的和基於頁),
5-手動中止請求就像任何其他AJAX請求的可能性,
超時機制。