Синтаксическая ошибка jQuery .ajax, нераспознанное выражение

#jquery #ajax #twitter-bootstrap #laravel

#jquery #ajax #twitter-bootstrap #laravel

Вопрос:

Я пытаюсь получить данные с помощью вызова .ajax и добавить HTML-код ответа в модальное тело начальной загрузки. Но я продолжал получать эту ошибку:

jquery-3.1.0.min.js: 2 Неперехваченная ошибка: синтаксическая ошибка, нераспознанное выражение: http://localhost/menu/create

На самом деле я получаю нужные данные в ответ, но из-за этой ошибки данные не могут отображаться в модальном окне.

Вот мой код. Когда я нажимаю на ссылку, вызов ajax возвращает html-форму и вставляет ее в модальное тело. Затем отображается модальное окно.

 <a href="{{route('menu.create')}}" class="btn btn-default pull-right show-new-menu-item-modal" data-toggle="modal">New Menu Item</a>

$('body').on('click', '.show-new-menu-item-modal', function(event) {
event.preventDefault();
 $.ajax({
        url: $(this).attr('href'),
        dataType: 'html',
        success: function(response) {
            $("#new-menu-item-body").html(response);
        }
    });
    $('#new-menu-item-modal').modal('show');
});
  

Я искал и менял код в течение нескольких часов, но все еще безуспешно. Я был бы очень признателен, если кто-нибудь может дать мне какую-то идею. Заранее спасибо!

Комментарии:

1. попробуйте добавить return false в конце вашего ajax-вызова

Ответ №1:

Я подозреваю, что это связано с начальной загрузкой и тем фактом, который вы установили data-toggle="modal" для элемента.

Попробуйте удалить это. Вы сами инициализируете модальное как есть.

Я думаю, что происходит потому, что вы не использовали data-target то, что требуется в связи с data-toggle этим, пытается использовать в href качестве селектора jQuery для модального идентификатора, и это выдаст ошибку, которую вы видите, если вы это сделали

Ответ №2:

@charlietfl прав, вы не можете запретить действие по умолчанию для модального, если вы это сделаете, оно вообще не откроется, проверьте способ javascript вызова модального в документации Bootstrap, в нем есть исправление, которое вы можете использовать, чтобы сделать то, что вы хотите, проверьте этот URL: http://getbootstrap.com/javascript /.

Надеюсь, вы решите

Превосходно!

Ответ №3:

Если у вас нет модели начальной загрузки и вы получаете синтаксическую ошибку, убедитесь, что возвращаемый HTML-код не содержит пробелов перед первым узлом DOM.