通过 Laravel 中的 AJAX 发布请求将值从一个视图传递到另一个视图

Posted

技术标签:

【中文标题】通过 Laravel 中的 AJAX 发布请求将值从一个视图传递到另一个视图【英文标题】:Passing value from one view to another view by AJAX Post Request in Laravel 【发布时间】:2018-01-28 23:55:54 【问题描述】:

我们可以使用 AJAX Post 请求将值从视图传输到控制器。我正在这样做并成功地将值从视图传递到控制器。但是我可以使用 AJAX Post 请求将值从一个视图传输到另一个视图吗?正如 Laravel 建议的那样,我正在这样做。但在这方面没有成功。难道我做错了什么?请帮忙。谢谢你。 这是我的代码:

Page.blade.php

<script>
    $(document).ready(function()
            $('a#one').on('click', function () 
            var text=$(this).text();
            console.log(text);
            $.ajax(
                url: APP_URL+'/show',
                method: 'post',
                data: 
                    text: text
                ,
                success: function(response)
                    console.log(response);
                
            );
        );
    );
</script>

web.php:

Route::post('show','UserController@special');
Route::get('/show' , [
    'uses' => 'UserController@special1',
    'as' => 'show'
]);

控制器:

public function special(Request $request)
        $text = $request->input('text'); 
        echo " dsds ".$text;
        // do stuff with $text
        $projects=DB::table('projects')->where('projects.type', '=', $text)->get();
        return view('show',compact('projects'));
    

您可以看到我正在使用紧凑函数将值传输到另一个名为show.blade.php 的视图,但它没有传输值。如何将其转移到show.blade.php?我知道使用GET 方法一可以轻松转移价值。但我想通过使用POST 请求来传输它。

【问题讨论】:

尝试Route::get('show/text',[...] 并在您的控制器上使用public function special(Request $request, $text) 【参考方案1】:

Ajax 的工作原理

正如您在右侧框第二个要点上看到的。当您发出 AJAX 请求时,它会返回给原始调用者的响应。

您的web.phpController 看起来不错。当您发出 AJAX 请求时,它会触发 special 函数,但是当您 return view('show',compact('projects')); 它会返回您的 view 作为对 AJAX 调用的 html 响应(您可以在控制台日志中看到 html)。所以这意味着你不能从 ajax 加载新视图。

您可以使用常规同步调用来加载新的。 :)

或者如果您只想更新同一页面上的内容,您可以参考以下链接

How can I return a view from an ajax call in Laravel 5

【讨论】:

感觉很糟糕,我不能这样做。那只是我的愿望!!!虽然你这么多:)

以上是关于通过 Laravel 中的 AJAX 发布请求将值从一个视图传递到另一个视图的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 控制器中请求输入 null

Laravel Ajax 请求使用 post 方法抛出 MethodNotAllowedException

Laravel中的AJAX POST请求[重复]

本地主机上 laravel 5.3 中 ajax 发布请求中的 CSRF 令牌不匹配异常

Laravel API ajax 请求未通过身份验证

错误:laravel/VueJS ajax 请求中的 CORS