2014-07-18 43 views
1

我有一個用CakePHP構建的網站。我想用jQuery ajax發送一個HTTP帖子(我知道cakePHP有一個幫手,但我想用jQuery來做,因爲它更靈活)。jQuery ajax不發送任何東西

我的jQuery函數:

function warrantyqueryPost(ServiceorderSerial, ServiceorderUserId){ 

    var data = { 'data[Warrantyqueries][serial]' : 123, 'data[Warrantyqueries][user_id]' : 4 } 

    var url = '/warrantyqueries/add'; 

    alert(url); 
    $.ajax({ 
     type: 'post', 
     url: url, 
     data: data, 
     success: function(){ 
      alert('hat geklappt'); 
     }, 
     error: function(){ 
      alert('nein'); 
     } 
    }); 

    alert('test'); 
} 

爲了測試鍵 - 值對硬編碼(以避免任何錯誤)。該函數被調用,但不執行ajax調用。什麼都沒發生。

POST方法的絕對URL是

http://localhost:8080/serviceordersystem/index.php/warrantyqueries/add 

我甚至試過了,沒有成功。

對於測試的原因,我試過一個非常簡單的Ajax GET:

function warrantyquery(ServiceorderSerial, ServiceorderUserId){ 
    alert('test'); 
    var url = '/serviceordersystem/index.php'; 

    var jqxhr = $.get(url, function() { 
     alert("success"); 
    }) 
     .done(function() { 
      alert("second success"); 
     }) 
     .fail(function() { 
      alert("error"); 
     }) 
     .always(function() { 
      alert("finished"); 
     }); 
} 

什麼也沒有發生。如果我用我的瀏覽器調用地​​址,我會返回正確的字符串。

更新 對我來說,它真的看起來像jquery不工作!待機,我會檢查...

+0

看看你的瀏覽器的控制檯說什麼.. – Confused

+0

請不要使用警報()來排除故障。改用console.log()。打開瀏覽器的開發者工具並觀看請求/響應週期。您還會看到任何JavaScript/jQuery錯誤。 –

回答

0

我發現鏈接的jquery庫已損壞。再次下載庫,現在它正在工作。

0

這個'index.php'的url是否正確?

http://localhost:8080/serviceordersystem/index.php/warrantyqueries/add 

不應該是:

http://localhost:8080/serviceordersystem/warrantyqueries/add 

呢?

您可以使用Chrome開發人員工具調試請購單,並查看響應代碼。如果URL錯誤,則應該返回404.如果Chrome DT或Firebug中沒有任何內容出現,這意味着您的Ajax請求未被解僱,這不是URL問題。

+0

是的,我是。由於應用程序的路由器。看到我對Spokey建議的評論。 – mosquito87

+0

您可以嘗試點擊F12(開發人員工具)並查看響應代碼?如果URL錯誤,它應該返回404。 – Jirico

0

很有可能您的網址是錯誤的。你說的絕對路徑是

http://localhost:8080/serviceordersystem/index.php/warrantyqueries/add 

但通過使用/warrantyqueries/add網址將導致

http://localhost:8080/warrantyqueries/add 

您必須使用絕對路徑爲了這個工作。

P.S:根據經驗,我遇到了$.ajax()http://localhost的問題。如果這仍然失敗,您可能需要考慮使用IP。


對於將來的調試,您可以考慮打開瀏覽器控制檯並查看錯誤和網絡請求。另外考慮擴展你的錯誤方法。

例如

error: function(jqXHR, textStatus, errorThrown) { 
    console.log(textStatus, errorThrown); 
} 

http://api.jquery.com/jquery.ajax/

錯誤類型摘自:功能(jqXHR jqXHR,字符串textStatus,字符串 errorThrown)

+0

在工作表單中,我已經看到此表單的操作是

...所以我想網址應該是/serviceordersystem/index.php/warrantyquery/add ...試過了。仍然沒有成功。 – mosquito87

+0

感謝您的調試提示。更新了我的「簡單功能」。仍然沒有輸出。 – mosquito87

+0

@ mosquito87它提醒錯誤?如果是的話,請參閱我的回答中的回覆 – Spokey

相關問題