Laravel Проходящий маршрут до js - PullRequest
1 голос
/ 30 января 2020

У меня есть отдельный файл js в папке laravel publi c, я объявил свой маршрут в сеть. php, я могу использовать их в блейд-файле, но получаю ошибку, пытаясь использовать их в этом js file.

$.ajax({
   //url:"http://127.0.0.1:8000/cats/fetch",
    url:"{{route('cats.fetch')}}",
    method:"POST",
    data:{select:select, value:value, _token:_token, dependent:dependent},
    success:function(result)
    {
      $('#'+dependent).html(result);
    }

})

но когда я использую жестко запрограммированный URL-адрес, он работает, например, URL-адрес: "cats / fetch". Как я могу сделать его настраиваемым, не жестко запрограммированным в js файл

Ответы [ 2 ]

0 голосов
/ 30 января 2020

url:"{{route('cats.fetch')}}", недопустим .js синтаксис. Вы правы, что можете использовать его в .blade.php, но во внешнем файле .js вам необходимо сначала присвоить его переменной:

<script type="text/javascript">
  let url = "{{ route('cats.fetch') }}";
</script>
<script src="path/to/file.js" type="text/javascript"/>

Затем, в file.js, ссылка переменная:

...
url: url,
...
0 голосов
/ 30 января 2020

Вы не можете использовать blade в файле javascript, поэтому есть два способа решить эту проблему

1 - добавить этот код в свой блейд

@section('script')
 // your js code here
@endsection

но убедитесь, что в вашем app.blade.php вы добавили yield для этого section(script)

2 - добавьте основной url в объект publi c перед загрузкой любого script в ваш app.blade.php не в отдельном js файле

как то так

const baseData = {
    url: {{ url('/') }}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...