dougu7546 2018-04-11 21:28
浏览 61
已采纳

将数据从jQuery发送到laravel控制器

i'm using laravel and i want to receive data from jQuery to my controller to insert it to the database , i tried many methodes but without success this is my script :

$.ajaxSetup({
   headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
});
$.ajax({
   url:'/test',
   type: 'POST',
   dataType: 'JSON',
   data: {
      "name": "Name",
      "color": "red",
    },
});

and the controller :

public function test()
{
  if(Request::ajax()) {
      $data = Input::all();
  }
  dd(json_decode($data));  
}

and finally the Route :

Route::post('/test',[
    'uses' => 'TagsController@test'
]);

it seems ok for me but the result :( : enter image description here

  • 写回答

2条回答 默认 最新

  • dongxiai3003 2018-04-12 04:11
    关注

    Maybe the problem is in your controller, because you don't tell the server, which table do you want to use to store your data or maybe because of your url.. jquery does not understand what is {{}}

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    
    $.ajax({
        url: '/test',
        method: 'post',
        data: $('#form-id').serialize(), // prefer use serialize method
        success:function(data){
            console.log(data);          
        }
    });
    

    Controller:

    use Illuminate\Http\Request;
    
    public function test(Request $request)
    {
      if($request::ajax()) {
          $data = $request->color;
      }
      dd(json_decode($data));  
    }
    

    I am using serialize because It's so powerful, I don't need to input one by one the field name

    I don't know if your controller is used for only retrieve the data from client or you want to use ajax to store your data in database.. so, I am using $request->color to make sure that the data is retrieved from the client side

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?