我正在接受名为category
的用户的输入。在每次按键时,我想执行 ajax 请求来搜索具有相似名称的类别是否存在。如果是,那么该输入下面有一个空白 div,我想用相似的名称类别填充它。
所以我创建了一个表单。通过 jquery 使用 ajax 但我没有收到响应。
这是我正在使用的 jquery ajax 代码
$("#category").keyup(function () {
$.ajax({
url: "categories/categoryajaxrequest",
type: "get",
data: {
category: $("#category").val()
},
success: function (response) {
$("#category_suggestion").html(response);
}
});
});
这是在ajax请求中用作url的路由部分
Route::get('categories/categoryajaxrequest', array('as' =>'categoryajaxrequest', 'uses' =>'CategoryController@categoryAjaxRequest'));
这是 Controller 部分
//app/controllers/CategoryController.php
....
public function categoryAjaxRequest(){
echo "working";
}
因此,输入文本的 id 为“category”,并且在输入下方有一个 id 为“category_suggestion”的 div。在输入的每次按键时,我希望它执行 ajax 请求并在 div 中显示“成功”。但它没有做任何事情。
但是,如果我在浏览器上直接进入“/categories/categoryajaxrequest”,它会输出“working”。
最佳答案
尝试将操作直接放在 $.ajax()
方法的 url:
属性中,则不需要路由:
Laravel 给了我们这样做的自由。大括号 {{
}}
用于 View 中。由于 JavaScript 内容通常在 View 中调用,因此这样做是合法的。
文档中对 URL::action
部分的描述如下:
To generate a URL to a controller action, we may use the URL::action method or the action helper method:
$url = URL::action('FooController@method'); $url = action('FooController@method');
因此,模板系统和 URL::action
的结合使我们有可能这样做:
$("#category").keyup(function () {
$.ajax({
url: "{{URL::action('CategoryController@categoryAjaxRequest')}}",
type: "get",
data: {
category: $("#category").val()
},
success: function (response) {
$("#category_suggestion").html(response);
}
});
});
关于javascript - laravel 4 中没有 ajax 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23828862/