2014-05-23 54 views
0

我正在接受來自名爲category的用戶的輸入。在每一個鍵上,我想執行一個ajax請求來搜索具有相似名稱的類是否存在。如果是的話,那麼在那個我想用相似的名字類別填充的輸入下面有一個空格。laravel 4中沒有ajax響應

所以我創建了一個表單。通過jQuery使用ajax,但我沒有收到回覆。

這是我使用

$("#category").keyup(function() { 
    $.ajax({ 
     url: "categories/categoryajaxrequest", 
     type: "get", 
     data: { 
      category: $("#category").val() 
     }, 
     success: function (response) { 
      $("#category_suggestion").html(response); 
     } 
    }); 
}); 

這是它用作URL在AJAX請求

Route::get('categories/categoryajaxrequest', array('as' =>'categoryajaxrequest', 'uses' =>'[email protected]')); 

路線部分jquery的Ajax代碼,這是控制器部分

//app/controllers/CategoryController.php 

.... 

public function categoryAjaxRequest(){ 
    echo "working"; 
} 

因此,輸入文本的ID爲「category」,在輸入下方有一個ID爲「catego」的div ry_suggestion」。在輸入的每一個keyup上,我希望它執行一個ajax請求,並在div中顯示「成功」。但它沒有做任何事情。

但是,如果我直接在瀏覽器中輸入「/ categories/categoryajaxrequest」,它會輸出「working」。

+0

...我第一次訪問這個SO頁面時發生了408錯誤。幽靈般的?? – Laurence

+0

更改你的網址爲'categoryajaxrequest'? – Ohgodwhy

+0

將URL更改爲'categoryajaxrequest'沒有幫助。 – Kanav

回答

1

嘗試直接把動作在$.ajax()方法url:屬性,則不需要路線:

Laravel給了我們自由去做到這一點。在視圖中使用大括號{{}}。由於JavaScript的東西通常在視圖中調用,所以這樣做是合法的。

爲了產生一個URL到控制器動作,我們可能會使用URL ::動作 方法或動作輔助方法:

$url = URL::action('[email protected]'); 

$url = action('[email protected]'); 

URL::action該部分在該文檔描述如下

所以模板系統&的URL::action給我們做這種方式的可能性的組合:

$("#category").keyup(function() { 
    $.ajax({ 
     url: "{{URL::action('[email protected]')}}", 
     type: "get", 
     data: { 
      category: $("#category").val() 
     }, 
     success: function (response) { 
      $("#category_suggestion").html(response); 
     } 
    }); 
}); 
+0

它的工作。 WTF:D – Kanav