Сделать маршрут доступным только через JavaScript - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть метод IndexController@search(Request $request), который я использую для поля автозаполнения:

Маршрут:

Route::get('/search', 'IndexController@search')->name('index.search');

Javascript:

$(function() {
    $('#terms').autocomplete({
        source: 'search' // --> http://myapp/search
    });
});

Javascript / jQuery работает как положено, но теперь можно вызвать http://myapp/search в браузере и получить доступ к необработанным данным JSON поискового запроса. Если возможно, я бы хотел запретить это. Метод поиска должен быть доступен только через JavaScript.

Это возможно?

1 Ответ

0 голосов
/ 26 апреля 2018

Всегда есть способы обойти это. Но это будет делать то, что вы хотите в большинстве случаев:

if (!request()->ajax()) {
    abort(404);
}

При этом я бы больше беспокоился о том, чтобы ajax-боты пытались перебирать контент, чем о том, как люди перелистывают страницы вручную

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...