2010-06-22 78 views
3

我有一個使用JQuery編寫的Web應用程序。我在整個應用程序中使用了$ .post方法,包括登錄屏幕。它工作得很好,現在突然出現藍色,它不再有效。但是,帖子響應現在返回null。如果我手動輸入帖子,它會返回我期望的JSON代碼。JQuery的帖子停止工作

有些事情可能會有所幫助: 1.)我正在鏈接Google對JQuery的託管。 2.)我沒有對我的代碼或網站做任何更改。今天早上大約一週前,它工作正常。 3.)有時候,jquery post請求確實有效。特別是當我慢慢瀏覽代碼時。

下面的代碼的SNIPPIT多數民衆贊成失敗:

function TryLoggingIn() 
{ 
$.post(
    "login.php", 
    {action: "login", username: $("#_uxUsername").val(), password: $("#_uxPassword").val(), redirect: $("#_uxRedirect").val()}, 
    function(data) 
    { 
     if (data.response == "error") 
     { 
      $("#_uxErrorBox").slideUp(); 
      $("#_uxErrorBox").slideDown(); 
      $("#_uxErrorText").text(data.message); 
      $(".widgetErrorIcon").show(); 
     } 
     else 
     { 
      window.location = data.newlocation; 
     } 
    }, 
    "json" 
); 

}

什麼奇怪的是,當它失敗,我使用的是Wireshark看着它,我從來沒有看到發的帖子的請求,但它會將數據設置爲空,進入成功功能。

回答

2

有一件事要檢查,特別是如果WireShark沒有看到任何請求,是否瀏覽器緩存了Ajax目標。防止這種情況的一種方法是在URL中添加無意義的查詢字符串或錨點,並在其中包含一個隨機數字。

Firebug對於這類事情也很有用,雖然使用WireShark也是一個好主意。

最後,使用jQuery.ajax()函數而不是jQuery.post()重寫ajax調用通常很有用,因爲這樣可以調整更多的內容,比如超時值,「緩存「國旗等