仅通过javascript提供路线

时间:2018-04-26 19:10:07

标签: javascript php jquery laravel

我有一个方法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 :(得分:1)

总有办法解决这个问题。但是在大多数情况下,这会做你想要的:

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

话虽如此,我更关心的是ajax机器人试图抓取内容,而不是人们手工浏览页面