2014-09-25 71 views
0

我有一個表單,我想在jQuery中使用Ajax調用發佈,但我在FireFox中收到了「太多遞歸」的錯誤。它在Chrome中也失敗了,所以它不僅僅是FF中的一個問題。該表單包含幾個文本輸入和一些隱藏字段,其值應在提交時發佈。jQuery Ajax POST - 獲取「InternalError:太多遞歸」

未使用Ajax調用成功發佈表單,即使用標準提交按鈕發佈表單,但我想發佈而不發佈回頁面。如果這有所幫助,該表單就位於jQuery對話框中。

目前我只是試圖看看這個調用是成功還是失敗,而不是在調用之後做任何有用的事情。

在項目中還有其他類似的調用,我以幾乎相同的方式處理這項工作,他們一直按預期工作。我對這一切都很陌生,但無法弄清楚這裏有什麼問題。任何幫助將非常感激。乾杯!

$("#formID").submit(function (e) { 
      e.preventDefault(); 
      $.ajax({ 
       type: $(this).attr('method'), 
       url: $(this).attr('action'), 
       data: $(this).serialize(), 
       success: function(html){ 
        alert("success"); 
       }, 
       error: function(xhr, status, err){ 
        console.log(xhr.statusText); 
        console.log(status); 
        console.log(err); 
        alert("failure"); 
       } 
      }); 
     }); 
+1

註釋'data:$(this).serialize(),'line並查看錯誤是否消失。 (是的,它將導致服務器的問題) – epascarello 2014-09-25 13:05:12

+0

你在服務器上接到電話嗎?它是否會觸及你的服務器功能?或者你的服務器函數返回一些東西,但它不會回到clint? – artm 2014-09-25 13:06:55

+0

感謝您的快速回復...... @ epascarello - 刪除該行並不會改變任何內容,但仍然是相同的錯誤。 @artm--它看起來並不像服務器功能正在被擊中,儘管如我所說,它絕對是在沒有ajax調用的情況下被擊中的。我嘗試過更改數據,網址和類型(即使呼叫無法正常工作),但我仍然收到相同的錯誤,但不會更改 – Jon 2014-09-25 13:13:20

回答

0

這裏是工作撥弄它做工精細 可問題是你的jQuery版本,或者也許它會與othere jQuery的衝突的

jsfiddle.net/nc97jt52/

+0

感謝您證明它應該可以正常工作。不幸的是我仍然得到同樣的錯誤。我已經清除了除提交按鈕之外的所有內容,將表單的action屬性更改爲簡單的'url',就像在你的小提琴中一樣,仍然會出現遞歸錯誤。真的不知道這裏發生了什麼事情,它可能是其他的衝突,因爲你建議 - 我會繼續研究它。已嘗試清除瀏覽器緩存,重新啓動應用服務器等,但沒有任何變化。謝謝 – Jon 2014-09-25 14:01:47

+0

你應該通過使用console.log()和alert()來調試你的jquery,這樣你就可以確定問題實際存在的位置 – 2014-09-26 05:06:14

0

我設法弄清楚在結束。在我的頁面上,我包含了其他頁面模板和模塊,其中一個引用了我在頁面上引用的相同的.js文件。這是造成錯誤的原因。

我刪除了鏈接相同文件的模板引用,因爲它實際上並不需要,並且解決了該問題。感謝您的幫助所有