Как использовать URL-адрес laravel и помощник по маршрутам в $ ajax - PullRequest
0 голосов
/ 23 октября 2018

как перевести URL-адрес, как это

http://localhost/event/add

, но я всегда получаю, когда я отправляю форму

http://localhost/%7B%7B%20url('event/add')%20%7D%7D

мой код js

 $.ajax({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                type: 'POST',
                url: "{{ url('event/add') }}",
                data: form,
                dataType: "json",
                success: function (data) {
                    console.log("yes :- " + JSON.stringify(data));
                 }
        },'json');

мой файл web.php

Route::post('/event/add','eventController@create')->name('event.Add');

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Вы не можете вызывать коды laravel внутри js-файла, если js-коды не находятся внутри файла представлений laravel blade.

поэтому для вызова laravel-кодов нужно либо передать их в виде атрибутов html-тегов внутри представления, а затем вызвать их с помощью javascriptвнутри js-файла

т.е. myview.blade.php

<input type="hidden" id="myurl" url="{{url('event/add')}}" />

, затем в вашем js-файле

var myurl = $('#myurl").attr('url');
$.ajax({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                type: 'POST',
                url: myurl,
                data: form,
                dataType: "json",
                success: function (data) {
                    console.log("yes :- " + JSON.stringify(data));
                 }
        },'json');
0 голосов
/ 23 октября 2018

Файл JavaScript не может отобразить код php / blade.Он не работает в файле .js, так как они не анализируются в файле .js.Таким образом, вы можете использовать некоторые приемы, чтобы получить переведенный / переведенный URL по лезвию, как показано ниже.

В следующих примерах я предполагаю, что имя вашего файла blade равно view.blade.php и javascript файл script.js

Первое решение:

В view.blade.php введите следующий код

<script>
   var add_event_url = "{{ url('event/add') }}"
</script>

Включите свой js-файл под теги сценария.

Затем вы можете использовать переменную add_event_url в своем файле javascript в script.js file

$.ajax({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                type: 'POST',
                url: add_event_url, //http://localhost/event/add
                data: form,
                dataType: "json",
                success: function (data) {
                    console.log("yes :- " + JSON.stringify(data));
                 }
        },'json');

Второе решение: Вы можете использовать route или url helper в атрибуте элемента HTML, и по щелчку вы можете получить проанализированный URL, как показано ниже в вашем view.blade.php файле

<a href="{{ url('event/create') }}" id="create_event">Add Event</a>

и в script.js файле

$(document).on('click', '#create_event', function(){
    var add_event_url = $(this).attr('href');
    $.ajax({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                type: 'POST',
                url: add_event_url, //http://localhost/event/add
                data: form,
                dataType: "json",
                success: function (data) {
                    console.log("yes :- " + JSON.stringify(data));
                 }
        },'json');

});

Надеюсь, это поможет.

0 голосов
/ 23 октября 2018

Попробуйте, как в этом примере,

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

$url = '{{url('event/add')}}';

$.ajax({
    type:'POST',
    url: $url,
    success:function(data) {
        $("#msg").html(data.msg);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...