【问题标题】:Laravel Route for JSON Response ViewsJSON 响应视图的 Laravel 路由
【发布时间】:2017-01-23 14:32:37
【问题描述】:

我有一些视图使用toJSON() 返回我的模型的数据。

是否有可能(使用 5.3)使普通用户无法使用,但 AJAX 请求可以访问?

我看到有一个 api.php 路由文件,但那些似乎需要 auth:api 中间件,我不希望他们需要 api-key 或其他东西,因为路由是由我调用的应用程序本身使用 twitter typeahead。

【问题讨论】:

  • 你如何定义normal user

标签: ajax laravel routes


【解决方案1】:

正如@Mandeep Gill 已经提到的,您可以检查请求是否来自 ajax:

function myFunction() {
    if (!Request::ajax()) {
        return;
    }

    // Include logic here and define data
    $data = '';

    return response()->json($data, 200);
}

但是,我建议您创建一个您的应用程序可以使用的私有 API。

【讨论】:

  • 正如@Gadzhev 所说,值得将您的路由甚至控制器分离到 API 特定的命名空间中。这将使处理您的请求更加整洁。
  • 你有 laravel 中私有 API 的起点,还是简短的教程?
【解决方案2】:

你在哪里返回结果返回如下:

if(\Request::ajax()) {

  return \Response::make(["data" => $data]); // return what you likes

} else {

  return view('test'); // For normal view not ajax request.

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-20
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2017-09-18
    • 2015-03-03
    • 2017-09-28
    相关资源
    最近更新 更多