Laravel AJAX请求不为方法的restful控制器工作

时间:2015-01-11 21:00:48

标签: ajax laravel get controller

Laravel AJAX请求不使用方法的restful控制器。

此AJAX请求不适用于create方法,但它适用于laravel资源控制器的索引方法。

第一个链接起作用,因为它是索引方法。第二个链接是create方法,它不起作用。两个代码都相同

http://thetoppinghouse.com/laravel/public/listing
http://thetoppinghouse.com/laravel/public/listing/create

在这里,您将获得我的代码摘要 http://laravel.io/bin/roYBY

enter image description here

我已经在这里发布了这个问题而没有实例,但无法得到解决方案。 Laravel Ajax request not working of a controller

这是我的AJAX代码摘要

// AJAX Requesst
 <script>
      $('#parent_ID').on('change',function(e){
          console.log(e);

          var cat_id = e.target.value;

          // AJAX
          $.get('ajax-subcat?cat_id=' + cat_id, function(data){
          $('#subcategory').empty();
           $.each(data, function(index, subcatObj){
           $('#subcategory').append('<option value="'+subcatObj.id+'">'+subcatObj.name+'</option>')

               });

            console.log(data);


          });
          });

</script>

And routes is here

// routes.php

Route::resource('listing','ListingController');
Route::get('ajax-subcat', function(){
    $cat_id = Input::get('cat_id');
    $subcategories = Subcategory::where('parent_ID', '=', $cat_id)->get();
    return Response::json($subcategories);
});

1 个答案:

答案 0 :(得分:1)

问题是您的javascript代码正在向ajax-subcat?cat_id=1发送ajax请求,这是一个相对网址。这意味着:

/laravel/public/listing => /laravel/public/ajax-subcat
/laravel/public/listing/create => /laravel/public/listing/ajax-subcat

由于您已经在刀片模板中使用了javascript,因此您可以轻松地让Laravel生成URL:

 // AJAX
 $.get('{{ URL::to('ajax-subcat') }}?cat_id=' + cat_id, function(data){
     $('#subcategory').empty();