Как заставить работать скрипт?

Доброго дня всем

Есть такой js-код
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
    $(".add_cart").click(function (e) {
            e.preventDefault();

            $.ajax({
                url: "{{ route('cart.store') }}",
                type: "POST",
                dataType: "html",
                data: $(".form").serialize(),
                success: function (response) {
                      console.log("OK");
                },
                error: function (response) {
                    console.log("NO");
                }
            });
    });


Если он находится на одной странице с формой, то все работает нормально. Если же вынести его в отдельный файл и подключить как и все js-скрипты, то не работает, а в консоли показывает такую ошибку
http://test.loc/%7B%7B%20route('cart.store')%20%7D%7D 404 (Not Found)

Но если в скрипте заменить url: "{{ route('cart.store') }}" на url: "/addCart" (например), то работает нормально и в отдельном файле и на странице с формой.
Может, кто сталкивался с таким? В чем может быть дело?

Спасибо.
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
@2vtlk
Дело в том, что шаблонизатор blade не работает в js-файлах. А у вас в javascript используется
{{ route('cart.store') }}

для решения этого вопроса есть пакет laroute, который прокидывает все laravel роуты в javascript, он генерирует файлик laroute.js, подключаете его в своем html шаблоне и используете в javascript так:
laroute.route('cart.store')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
JhaoDa
@JhaoDa
LaravelRUS Team
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы