【问题标题】:Laravel return a view in an Ajax responseLaravel 在 Ajax 响应中返回一个视图
【发布时间】:2019-12-19 10:03:25
【问题描述】:

这里有人问过这个问题: How can I return a view from an AJAX call in Laravel 5? 还有其他几个问题。答案是混杂的,其中最重要的答案对我不起作用。我将在下面解释所有内容。

我当前有一个 Ajax 调用在我执行此操作时返回一个成功的响应:

    public function search (Request $request)
    {
    $output =             echo '<td>Notes</td>';
                echo '<td colspan="8" id="orderNotes"><input type="text" name="notes" style="width: 100%;"></td>';
                echo '<td><button class="btn btn-info btn-fill btn-sm" id="saveNotes" data-orderNumber="';

// a bunch of more echos

    return Response($output); 

    }

这给我带来了很多问题,因为我手动输入每个回声。相反,我想通过返回一个视图来替换它。

从上面的回答看来,这将是正确的答案:

public function search(Request $request)

{
    $title = "just testing";
    $view = view("pages.orders-display",compact('title'))->render();
    return response()->json(['html'=>$view]);
}

我创建了一个名为 orders-display 的视图。路径是 views/pages/orders-display.blade.php 这给了我一个内部 500 错误。

我指出的上述答案是公认的最高答案,但它对我也不起作用。

public function search(Request $request)

{

  $userjobs = 'this is a test';

  $returnHTML = view('pages.orders-display')->with('userjobs', $userjobs)->render();
  return response()->json(array('success' => true, 'html'=>$returnHTML));

}

任何想法我做错了什么?

【问题讨论】:

    标签: laravel


    【解决方案1】:

    它们不适合您,因为它们返回的是 JSON 响应而不是 html 响应。您应该直接返回视图,而不需要调用 render 方法。

    试试这个

    return view('pages.your_page');
    

    或

    return view('pages.your_page')->render();
    

    【讨论】:

    • 500 错误...但请记住它是从 Ajax 调用 @Laurentiu Turcu 返回的
    • @FabricioG 这不应该导致 500 错误,您问题中的解决方案也不应该。您应该启用应用程序的调试模式以跟踪错误,并将其发布在此处以帮助您。
    • 据此:stackoverflow.com/questions/38475451/…。您不应该在 Ajax 请求中返回视图。这会导致 500 错误@Laurentiu Turcu
    • @FabricioG 您尝试在问题的第二个和第三个解决方案中返回 JSON,但您仍然得到 500 ......您的应用程序中还有另一个问题。我只是尝试在 API 路由中返回一个视图,它工作得很好。 Route::get('/test', function(Request $request) { return view('welcome'); });
    • 你是对的,我相信问题出在视图本身。网络错误显示:“消息”:“未找到查看 [.pages.order-display.blade.php]。”,“异常”:“InvalidArgumentException”,@Laurentiu Turcu 正在深入研究。
    猜你喜欢
    • 2021-01-14
    • 2020-10-11
    • 2015-05-06
    • 2013-11-10
    • 1970-01-01
    • 2019-01-12
    • 2020-01-06
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多