Nirab
Nirab

Reputation: 61

laravel ajax is not working , it seen fail


i want to insert data from register form by ajax.
but I see ajax failed in my console log.
I can't understand what is problem ?
here is my js :

$('#Personal_Information').on('submit', function(event){
        event.preventDefault();
        var form_data = $(this).serialize();
        $.ajax
        ({
            type: "POST",
            dataType : 'json',
            url: "{{url('all/update-profile')}}", 
            data: {csrf_token:"{{csrf_token()}}", data: form_data}
        }).done( function(data){
            console.log('Ajax was Successful!')
            console.log(data)
        }).fail(function(){
            console.log('Ajax Failed')
        });

here is my route :

Route::get('/update-profile', 'personalinformation@redirectupdatepage')->name('/all.update-profile');
Route::post('/all/update-profile', 'personalinformation@store');

my controller's code :

    public function store(Request $request)
{
    $modal = User::create($request->all());
    return $modal;
}

Thanks.

Upvotes: 0

Views: 53

Answers (1)

Md.Sukel Ali
Md.Sukel Ali

Reputation: 3065

Your token field name must be _token, Update your code, this line.

 data: { _token:"{{csrf_token()}}", data: form_data},

Best solution is add meta tag and header.

<meta name="csrf-token" content="{{ csrf_token() }}" />
<script>

   $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

</script>

Update Your Controller.

public function store(Request $request)
{
    $modal = User::create($request->get('data'));
    return $modal;
}

Upvotes: 1

Related Questions