2011-03-10 134 views
3

(對不起,我的英語,它不是我的出生語言) 我有一個使用codeigniter + JqueryUI的項目。我正在考慮將JQuery版本升級到1.5,主要是因爲我使用了很多Ajax調用,並且速度的任何改進都非常值得讚賞。 所以這是我的代碼,在至極JQuery的版本1.4.4正常工作:Jquery 1.5 ajax發送成GET POST數據

$("#nome_produto").autocomplete({ 
      source: function(request, response) { 
       $.ajax({ 
        async:false, 
        url: "<?php echo site_url("produtos_produto/json_produtos/f") ?>", 
        dataType: "json", 
        type: "POST", 
        data: request, 
        success: function(data) { 
         response($.map(data, function(item) { 
          return { 
           label: item.label, 
           value: item.label, 
           cod: item.cod 
          } 
         })); 
        }, 
        beforeSend:function(){ 
         $("#nome_produto").toggleClass("loading"); 
        }, 
        complete:function(){ 
         $("#nome_produto").toggleClass("loading"); 
        } 
       }); 
      }, 
      minLenght:3 
     }); 

jQuery的1.5,我得到了一個404錯誤,但請求的URL是這樣的: http://myurl.com/produtos_produto/json_produtos/f?callback=JQUERY_hashofnumbers,儘管這是一個後請求。 有誰知道它爲什麼會發生?

回答

2

檢查隱藏重定向

在我的情況

我使用Django,其中,一般而言,所有URL以'/'結尾

如果請求的URL不是以'/'結尾,而且資源找不到,那麼Django會發送一個重定向到帶有'/'的URL(這在Django中是一個非常有用的選項)。

在我的JavaScript中,我不小心省略了我的POST請求中尾隨的'/'。這導致重定向(到正確的url)。然而,在重定向期間,顯然POST會自動轉換爲GET(請參閱,例如,https://stackoverflow.com/a/10586852/473285)。