Ошибка 419 ajax

I do an ajax call but I keep getting this error:

419 (unknown status)

No idea what is causing this I saw on other posts it has to do something with csrf token but I have no form so I dont know how to fix this.

my call:

$('.company-selector li > a').click(function(e) {
     e.preventDefault();

     var companyId = $(this).data("company-id");


      $.ajax({
          headers: {
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
          },
          url: '/fetch-company/' + companyId,
          dataType : 'json',
          type: 'POST',
          data: {},
          contentType: false,
          processData: false,
          success:function(response) {
               console.log(response);
          }
     });
  });

My route:

Route::post('fetch-company/{companyId}', 'HomeController@fetchCompany');

My controller method

/**
 * Fetches a company
 *
 * @param $companyId
 *
 * @return array
 */
public function fetchCompany($companyId)
{
    $company = Company::where('id', $companyId)->first();

    return response()->json($company);
}

The ultimate goal is to display something from the response in a html element.

asked Sep 28, 2017 at 9:54

Chris's user avatar

9

Use this in the head section:

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

and get the csrf token in ajax:

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

Please refer Laravel Documentation csrf_token

answered Sep 28, 2017 at 10:15

Kannan K's user avatar

Kannan KKannan K

4,4011 gold badge11 silver badges25 bronze badges

6

Another way to resolve this is to use the _token field in ajax data and set the value of {{csrf_token()}} in blade. Here is a working code that I just tried at my end.

$.ajax({
    type: "POST",
    url: '/your_url',
    data: { somefield: "Some field value", _token: '{{csrf_token()}}' },
    success: function (data) {
       console.log(data);
    },
    error: function (data, textStatus, errorThrown) {
        console.log(data);

    },
});

answered Dec 27, 2017 at 6:41

Syed Waqas Bukhary's user avatar

1

It’s possible your session domain does not match your app URL and/or the host being used to access the application.

1.) Check your .env file:

SESSION_DOMAIN=example.com
APP_URL=example.com

2.) Check config/session.php

Verify values to make sure they are correct.

answered Apr 11, 2018 at 17:44

Jeff Callahan's user avatar

1

This is similar to Kannan’s answer. However, this fixes an issue where the token should not be sent to cross-domain sites. This will only set the header if it is a local request.

HTML:

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

JS:

$.ajaxSetup({
    beforeSend: function(xhr, type) {
        if (!type.crossDomain) {
            xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
        }
    },
});

answered Dec 14, 2017 at 5:02

Damien's user avatar

DamienDamien

1,08114 silver badges22 bronze badges

1

use this in your page

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

and in your ajax used it in data:

_token: '{!! csrf_token() !!}',

that is:

$.ajax({
          url: '/fetch-company/' + companyId,
          dataType : 'json',
          type: 'POST',
          data: {
                   _token: '{!! csrf_token() !!}',
                 },
          contentType: false,
          processData: false,
          success:function(response) {
               console.log(response);
          }
     });

Thanks.

answered Mar 22, 2018 at 12:53

Y. Joy Ch. Singha's user avatar

in my case i forgot to add csrf_token input to the submitted form.
so i did this
HTML:

<form class="form-material" id="myform">
...
<input type="file" name="l_img" id="l_img">
<input type="hidden" id="_token" value="{{ csrf_token() }}">
..
</form>

JS:

//setting containers
        var _token = $('input#_token').val();
        var l_img = $('input#l_img').val();
        var formData = new FormData();
        formData.append("_token", _token);
        formData.append("l_img", $('#l_img')[0].files[0]);

        if(!l_img) {
            //do error if no image uploaded
            return false;
        }
        else
        {
            $.ajax({
                type: "POST",
                url: "/my_url",
                contentType: false,
                processData: false,
                dataType: "json",
                data : formData,
                beforeSend: function()
                {
                    //do before send
                },
                success: function(data)
                {
                    //do success
                },
                error: function(jqXhr, textStatus, errorThrown) //jqXHR, textStatus, errorThrown
                {
                    if( jqXhr.status === "422" ) {
                        //do error
                    } else {
                        //do error
                    }
                }
            });
        }
        return false; //not to post the form physically

answered Dec 24, 2017 at 13:03

The Billionaire Guy's user avatar

1

If you already done the above suggestions and still having the issue.

Make sure that the env variable:

SESSION_SECURE_COOKIE

Is set to false if you don’t have a SSL certificate, like on local.

answered Mar 2, 2018 at 12:10

2Fwebd's user avatar

2Fwebd2Fwebd

1,9952 gold badges15 silver badges16 bronze badges

If you are loading .js from a file you have to set a variable with the csrf_token in your «main» .blade.php file where you are importing the .js and use the variable in your ajax call.

index.blade.php

...
...
<script src="{{ asset('js/anotherfile.js') }}"></script>
<script type="text/javascript">
        var token = '{{ csrf_token() }}';
</script>

anotherfile.js

$.ajax({
    url: 'yourUrl',
    type: 'POST',
    data: {
        '_token': token
    },
    dataType: "json",
    beforeSend:function(){
        //do stuff
    },
    success: function(data) {
        //do stuff
    },
    error: function(data) {
        //do stuff
    },
    complete: function(){
        //do stuff
    }
});

answered Jun 16, 2018 at 2:05

Wolfernand's user avatar

WolfernandWolfernand

612 silver badges3 bronze badges

0

Even though you have a csrf_token, if you are authenticate your controller actions using Laravel Policies you can have 419 response as well. In that case you should add necessary policy functions in your Policy class.

answered Dec 25, 2017 at 7:43

Tharanga's user avatar

TharangaTharanga

2,6691 gold badge21 silver badges18 bronze badges

some refs =>

...
<head>
    // CSRF for all ajax call
    <meta name="csrf-token" content="{{ csrf_token() }}" />
</head>
 ...
 ...
<script>
    // CSRF for all ajax call
    $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': jQuery('meta[name="csrf-token"]').attr('content') } });
</script>
...

answered Jun 15, 2018 at 14:56

WHY's user avatar

WHYWHY

2591 silver badge7 bronze badges

This worked for me:

$.ajaxSetup({
  headers: {
    'X-CSRF-TOKEN': "{{ csrf_token() }}"
  }
});

After this set regular AJAX call. Example:

    $.ajax({
       type:'POST',
       url:'custom_url',

       data:{name: "some name", password: "pass", email: "test@test.com"},

       success:function(response){

          // Log response
          console.log(response);

       }

    });

answered Oct 8, 2019 at 13:25

Nole's user avatar

NoleNole

8007 silver badges10 bronze badges

0

You have to get the csrf token..

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

After doing same issue is rise ,Just Add this meta tag< meta name="csrf-token" content="{{ csrf_token() }}" >

After this also the error arise ,you can check the Ajax error. Then Also check the Ajax error

$.ajax({
    url: 'some_unknown_page.html',
    success: function (response) {
        $('#post').html(response.responseText);
    },
    error: function (jqXHR, exception) {
        var msg = '';
        if (jqXHR.status === 0) {
            msg = 'Not connect.n Verify Network.';
        } else if (jqXHR.status == 404) {
            msg = 'Requested page not found. [404]';
        } else if (jqXHR.status == 500) {
            msg = 'Internal Server Error [500].';
        } else if (exception === 'parsererror') {
            msg = 'Requested JSON parse failed.';
        } else if (exception === 'timeout') {
            msg = 'Time out error.';
        } else if (exception === 'abort') {
            msg = 'Ajax request aborted.';
        } else {
            msg = 'Uncaught Error.n' + jqXHR.responseText;
        }
        $('#post').html(msg);
    },
});

Stephan Vierkant's user avatar

answered Jul 11, 2018 at 9:16

Balaji Rajendran's user avatar

0

formData = new FormData();
formData.append('_token', "{{csrf_token()}}");
formData.append('file', blobInfo.blob(), blobInfo.filename());
xhr.send(formData);

answered Apr 5, 2019 at 20:38

Siddhartha's user avatar

SiddharthaSiddhartha

1551 silver badge3 bronze badges

1

2019 Laravel Update, Never thought i will post this but for those developers like me using the browser fetch api on Laravel 5.8 and above. You have to pass your token via the headers parameter.

var _token = "{{ csrf_token }}";
fetch("{{url('add/new/comment')}}", {
                method: 'POST',
                headers: {
                    'X-CSRF-TOKEN': _token,
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify(name, email, message, article_id)
            }).then(r => {
                return r.json();
            }).then(results => {}).catch(err => console.log(err));

answered Jul 7, 2019 at 7:54

Codedreamer's user avatar

CodedreamerCodedreamer

1,51415 silver badges12 bronze badges

1

I had SESSION_SECURE_COOKIE set to true so my dev environment didn’t work when logging in, so I added SESSION_SECURE_COOKIE=false
to my dev .env file and all works fine my mistake was changing the session.php file instead of adding the variable to the .env file.

answered Jan 5, 2020 at 22:15

Dunks1980's user avatar

just serialize the form data and get your problem solved.

data: $('#form_id').serialize(),

answered Jun 26, 2018 at 13:18

Muhammad Umair's user avatar

This error also happens if u forgot to include this, in your ajax submission request ( POST ),
contentType: false,
processData: false,

answered Jan 7, 2019 at 7:49

Shamseer Ahammed's user avatar

Shamseer AhammedShamseer Ahammed

1,7792 gold badges20 silver badges25 bronze badges

Got this error even though I had already been sending csrf token. Turned out there was no more space left on server.

answered Apr 24, 2019 at 12:31

Andreas K's user avatar

This works great for those cases you don’t require a form.

use this in header:

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

and this in your JavaScript code:

$.ajaxSetup({
        headers: {
        'X-CSRF-TOKEN': '<?php echo csrf_token() ?>'
        }
    });

Botje's user avatar

Botje

25.3k3 gold badges30 silver badges40 bronze badges

answered Feb 28, 2019 at 16:13

lomelisan's user avatar

lomelisanlomelisan

90810 silver badges15 bronze badges

A simple way to fixe a 419 unknown status on your console is to put this script inside in your FORM. {{ csrf_field() }}

answered Jun 24, 2019 at 13:47

Denz A Gatcho's user avatar

in the name of the universe programmer

i send ajax with pure js and i understand when i dont set this method of ajax in pure js
<< xhr.setRequestHeader(«Content-type», «application/x-www-form-urlencoded») >>
i recive this error 419.

the full method of pure ajax is :

let token = document.querySelector(‘meta[name=»csrf-token»]’).content;

let xhr = new XMLHttpRequest();

// Open the connection
xhr.open("POST", "/seller/dashboard/get-restaurants");

// you have to set this line in the code (if you dont set you recive error 419):

xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//* Set up a handler for when the task for the request is complete
xhr.onload = function () {
    
};

// Send the data.
xhr.send(`_token=${token}`);

answered Jul 4, 2022 at 20:50

God is  universe programmer's user avatar

Just below the form field you can add @csrf like this

@csrf

answered Apr 25 at 9:42

Emmanuel Iyen-Mediatrees's user avatar

I would really appreciate some help on this.
I tried tons of solutions as posted in this forum, but I cannot get it to work.

My ajax call is something like

$(document).ready(function() {
    $("#company").click(function() {
        $.ajax({
            type: "POST",
            dataType:'html',
            url : "/company",
            success : function (data) {
                $("#result").html(data);
            }
        });
    });
});

I am calling the view through my route

Route::post('/company', 'Ajaxcontroller@loadContent');

And controller

public function loadContent()
    {
        return view('listing.company')->render();
    }

My company.blade.php is

    @foreach ($companies as $company)
            <div class="posting-description">
            <h5 class="header"><a href="#"></a>{{$company->name}}
            </h5>
            <h5 class="header"> {{$company->streetaddress}} {{$company->postalcode}}</h5>  
            <p class="header">
             <span class="red-text"> <?= $service; ?> </span> is available on <span class="green-text"><?php echo $date; ?></span>
           </p>
    @endforeach

I am getting this error

POST http://127.0.0.1:8234/company 419 (unknown status)

Paul Roub's user avatar

Paul Roub

36.3k27 gold badges83 silver badges93 bronze badges

asked Sep 28, 2017 at 15:20

Cowgirl's user avatar

8

Laravel 419 post error is usually related with api.php and token authorization

Laravel automatically generates a CSRF «token» for each active user session managed by the application. This token is used to verify that the authenticated user is the one actually making the requests to the application.

Add this to your ajax call

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

or you can exclude some URIs in VerifyCSRF token middleware

 protected $except = [
        '/route_you_want_to_ignore',
        '/route_group/*
    ];

Abhinav Keshri's user avatar

answered Sep 29, 2017 at 16:42

Dhiraj's user avatar

DhirajDhiraj

2,6772 gold badges10 silver badges34 bronze badges

1

419 error happens when you don`t post csrf_token. in your post method you must add this token along other variables.

answered Nov 7, 2018 at 12:14

Adnan Rasheed's user avatar

Had the same problem, regenerating application key helped — php artisan key:generate

answered Jan 31, 2019 at 10:25

EXayer's user avatar

EXayerEXayer

1451 silver badge9 bronze badges

You don’t have any data that you’re submitting! Try adding this line to your ajax:

data: $('form').serialize(),

Make sure you change the name to match!

Also your data should be submitted inside of a form submit function.

Your code should look something like this:

<script>
	$(function () {
		$('form').on('submit', function (e) {
			e.preventDefault();
			$.ajax({
				type: 'post',
				url: 'company.php',
				data: $('form').serialize(),
				success: function () {
					alert('form was submitted');
				}
			});
		});
	});
</script>

answered Sep 28, 2017 at 15:22

Lulceltech's user avatar

LulceltechLulceltech

1,66210 silver badges21 bronze badges

2

I had the same issue, and it ended up being a problem with the php max post size. Increasing it solved the problem.

answered Nov 6, 2018 at 14:02

Francisco Isidori's user avatar

I received this error when I had a config file with <?php on the second line instead of the first.

answered Dec 12, 2018 at 15:25

eli's user avatar

elieli

1872 silver badges15 bronze badges

You may also get that error when CSRF «token» for the active user session is out of date, even if the token was specified in ajax request.

answered Nov 21, 2019 at 9:25

eldorjon's user avatar

eldorjoneldorjon

1702 silver badges13 bronze badges

Step 1: Put the csrf meta tag in head

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="csrf-token" content="{{ csrf_token() }}">
    <title>Document</title>
</head>
<body>

Step 2: Use this ajax format

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
    $(document).ready(function(){
      $("#frm").submit(function(e){
        e.preventDefault();
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
            });
        $.ajax({
                url:"{{ url('form_submit') }}",
                data:$('frm').serialize(),
                type:'post',
                success: function(result){
                    console.log(result);
                }
        });
      });
    });
</script>

Gorka's user avatar

Gorka

1,9611 gold badge13 silver badges28 bronze badges

answered Jul 18, 2021 at 18:06

Agni Sankar Chakraborty's user avatar

1

In laravel you can use view render.
ex.
$returnHTML = view(‘myview’)->render();
myview.blade.php contains your blade code

answered Sep 28, 2017 at 15:29

Александр Волошиновский's user avatar

7

In your action you need first to load companies like so :

$companies = AppCompany::all();
return view('listing.company')->with('companies' => $companies)->render();

This will make the companies variable available in the view, and it should render the HTML correctly.

Try to use postman chrome extension to debug your view.

answered Sep 28, 2017 at 15:50

teeyo's user avatar

teeyoteeyo

3,6253 gold badges22 silver badges37 bronze badges

2

for me this happens now and then when running a unit test

php artisan config:clear

helped me

answered Jun 3, 2022 at 16:24

Witold's user avatar

WitoldWitold

8775 silver badges5 bronze badges

Передаю post запрос через ajax в итоге ошибка 419 . (если get запрос то ошибок нет)

$.ajaxSetup({
                    headers: {
                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                    }
                });
                $.ajax({
                    url: "/exit",
                    type: "POST",
                    data: "get=on",
                    success: function (response) {
                       console.log('+')
                    }
                });

в шапе присутствует

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

Роутер Route::post(‘/exit’, ‘SpaController@exit’);
Как решить данную ошибку


  • Вопрос задан

    более трёх лет назад

  • 9488 просмотров

Решил проблему передачей токена в data

$.ajax({
                    url: "/exit",
                    type: "POST",
                    data: {"_token": $('meta[name="csrf-token"]').attr('content')},
                    success: function (response) {
                       console.log('+')
                    }
                });

Пригласить эксперта

У меня рабочая схема, без form выглядит, не вдаваясь в детали, вот так:
HTML:

<div>
@csrf{{--эта конструкция преобразуется в input c именем _token, пример: <input type="hidden" name="_token" value="tyiV5lsNJy9aA245dke7979aW1otyutV5D">--}}
<input class='text' type='text'>
<input type='submit'>
</div>

JQuery:

let someV = $('.text').val();
let token = $("input[name='_token']").val();
                $.ajax({
                    type: 'POST',
                    url: '/someurl',
                    data: {
                       '_token': token,
                        "someV" : someV
                    },
                    success:function (res){
                        console.log('F**k yeah');
                    }

                })

Надеюсь кому-нибудь поможет)


  • Показать ещё
    Загружается…

05 июн. 2023, в 15:13

2000 руб./в час

05 июн. 2023, в 15:02

7000 руб./за проект

05 июн. 2023, в 14:37

500 руб./за проект

Минуточку внимания

419 status code laravel. Here we will show you 3 solutions of status code 419 unknown status.

If you work with laravel app. And want to send form data, login form data, registration form data and other form data to the server using ajax post request in laravel and you are facing the following errors

  • status code: 419 unknown status,
  • 419 (unknown status laravel postman)
  • laravel ajax post 419 (unknown status)
  • 419 status code laravel, laravel token mismatch exception ajax,uncaught in promise error: request failed with status code 419
  • csrf token mismatch laravel ajax
  • laravel 5.5 419 unknown status, 500 internal server error laravel ajax
  • ajax headers in laravel
  • csrf token mismatch laravel ajax

The following 3 solutions of 419 status code (unknown status) laravel are also work with laravel 9, 8, 7, 6, 5. 5.5, 5, 4 versions.

Solution 1

In this first solution, open your blade view file and add the following line of code into your blade view file head section:

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

Next, open again your blade view file. Then get the csrf token and add with ajax code in laravel:

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

$.ajax({
   
});

Solution 2

Next solution, if your still found status code: 419 unknown status with your ajax request in laravel. So, you can try the following solution.

In this solution we will show you how to send csrf token with your form data in laravel.

So, open your blade view file and add the following line of code into your blade view file head section:

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

Now, you can see the following how to send csrf token with your form data using ajax in laravel:

$.ajax({
    type: "POST",
    url: '/your_url',
    data: { somefield: "Some field value", _token: '{{csrf_token()}}' },
    success: function (data) {
       console.log(data);
    },
    error: function (data, textStatus, errorThrown) {
        console.log(data);

    },
});

Solution 3

The following third solution is quit similar to solution no 2.

Now, Add the following html code into your blade view file inside head section:

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

Then, you can add csrf token with laravel ajax request as following:

_token: '{!! csrf_token() !!}',

Csrf token with ajax in laravel:

$.ajax({
          url: 'yourUrl',
          dataType : 'json',
          type: 'POST',
          data: {
                   _token: '{!! csrf_token() !!}',
                 },
          contentType: false,
          processData: false,
          success:function(response) {
               console.log(response);
          }
     });

My name is Devendra Dode. I am a full-stack developer, entrepreneur, and owner of Tutsmake.com. I like writing tutorials and tips that can help other developers. I share tutorials of PHP, Python, Javascript, JQuery, Laravel, Livewire, Codeigniter, Node JS, Express JS, Vue JS, Angular JS, React Js, MySQL, MongoDB, REST APIs, Windows, Xampp, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL and Bootstrap from a starting stage. As well as demo example.

View all posts by Admin

Cover image for Ajax requests with Laravel and Axios - 422 and 419 errors

Recently I started integrating a bootstrap template with the Laravel backend. And one thing that made me suffer a lot is the ajax backend validation.
Two errors often occur when you handle ajax requests with Laravel: 419 and 422.

The 419 code corresponds to the absence of the csrf token.

To tackle this issue, simply put this into your head:

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

Enter fullscreen mode

Exit fullscreen mode

And pass it with every request you make to Laravel. (For routes in web.php file)
If you use axios, you can either add it to your global axios config:

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

Enter fullscreen mode

Exit fullscreen mode

Or specify when you create an axios instance:

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

Enter fullscreen mode

Exit fullscreen mode

What about 422 Unprocessable Entity?

This error occurs when your backend validation fails.
If you let Laravel refresh your page after POST request, you get errors in @errors directive and stuff, but usually, you want to handle it via ajax either because you care about user experience, or you use a frontend framework such as React or Vue. Or even both.

Here’s how you can tackle the latter issue with axios.

Suppose you validate your form with an email and password input fields:

$request->validate([
  'email' => 'required|min:4',
  'password' => 'required|min:9'
]);

Enter fullscreen mode

Exit fullscreen mode

As axios is a Promise-based library, you can catch errors in catch blocks. However, the problem is that even if you add a catch block after your then,
it won’t help you to get the information about the error in your browser. When you try to log it, you probably get something like this instead of a neat json with errors:

422 log error

Fortunately, the solution is simple. When you access the error data, use error.response instead of error in your catch block, this way:

axios
  .post(endpoint, body, headers)
  .then(response => {
    // Do fancy stuff
  })
  .catch(error => {
    console.log(error.reponse); // logs an object to the console

    // Do something with error data
  });

Enter fullscreen mode

Exit fullscreen mode

Here, error.response is an object with several useful properties such as status, statusText, and data. The latter is what we’re looking for.
There you can find a message property with a general description, and errors object with detailed validation errors.
In the error.response.data.errors object, the keys are the input names, and the values are arrays(!) of strings that describe errors.

Now let’s make a step further, and use some fancy features provided by axios.
Axios gives us an ability to add interceptors to our requests and responses. It allows us to modify requests and responses consistently and stick to the DRY principle.

If you’re not familiar with the concept of interceptors, you can think of it as follows:

  • For requests they modify your request data before sending it to the server,
  • For responses they modify the response before all your then and catch blocks.

If you want to learn more, check out the axios docs on this topic.

Using interceptors, we can add an extra layer:

instance.interceptors.response.use(
  response => response,
  error => Promise.reject(error.response)
);

Enter fullscreen mode

Exit fullscreen mode

Notice that we’re forwarding both the normal response and the error.

And basically, that’s it!

Понравилась статья? Поделить с друзьями:
  • Ошибка 4177 камаз камминз
  • Ошибка 4176 capi2
  • Ошибка 4175 камминз камаз
  • Ошибка 41668 форд мондео
  • Ошибка 422 гранта 8 клапанная