【问题标题】:Redirect() Doesnt work after POST Submit with @csrf, keeps on reloading the pageRedirect() 在使用@csrf POST 提交后不起作用,继续重新加载页面
【发布时间】:2020-07-18 15:23:03
【问题描述】:

我刚开始使用 laravel,我正在尝试为 praactive 创建一个简单的 post 表单,提交时会出现 419 错误,所以我在表单中使用了 @csrf。

HTML 表单:

<form method="POST" action="/posts">
    @csrf
        <input type="text" name="title" placeholder="Enter Title">
   
        <input type="submit" name="submit">

    </form>

路线:

Route::resource('/posts', 'PostController');

商店功能:

public function store(Request $request)
    {
        //
        $post = new Post;
        ...
        $post->save();
        return redirect('/posts'); //Tried
        return redirect()->route('posts.index'); 
    }

@csrf 修复了 419 错误并使帖子正常工作。 Post 仅在没有 redirect() 时才有效。我认为@csrf 使redirect() 不起作用。 我一直在寻找,找不到解决方案。我该如何解决这个问题?

【问题讨论】:

  • Welcome to SO ...“不断重新加载页面”是什么意思? ..如果你重定向到你已经在它的同一个URI,它看起来就像它刚刚重新加载
  • @lagbox 一直在刷新,所以 $post-save();多次完成。
  • 我不知道你在说什么“不断刷新”;您可以创建一个重定向循环,但浏览器刷新是某种浏览器问题
  • 刷新还是加载?
  • @lagbox 我认为是csrf在做这个问题。很确定重定向行是正确的。但是,当我删除重定向行时,它工作正常,但我想重定向到另一个不允许我的页面。不是浏览器问题

标签: php laravel laravel-7


【解决方案1】:

制作action="{{ route('posts.store') }}" 而不是action="/posts"

制作return redirect()-&gt;route('posts.index');

【讨论】:

  • 我可以看看你上次的商店功能吗?
  • ``` public function store(Request $request) { // $post = new Post; $post->user_id = 1; $post->title = $request->title; $post->content = '测试内容'; $post->保存();返回重定向()->路由('posts.create'); } ```
  • wdym 最后存储功能?上面是Store函数。
  • 顺便说一句,redirect()->route('....') 后页面刷新。您可以使用 Ajax 来避免页面刷新。
猜你喜欢
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
相关资源
最近更新 更多