Laravel 重定向返回页面 html 而不是重定向

时间:2020-12-22 16:32:48

标签: php laravel

在 Ajax 将数据发送到数据库后,我想将用户重定向到另一个页面/视图。 数据已成功添加到数据库,但 redirect() 不会重定向到视图,而是在控制台中返回整页的纯 html。可能是什么原因? 我试过了:

const getRiverByName = (strTest) => rivers.find( r => r.name === strTest)

scripts.js:

return view('posts');
return redirect('posts');
return redirect()->route('posts.all');

(with front slashes too)

我的 PostsController.php:

$('.submitBtn').click(e => {
    const title = $('#title').val();
    const tags = $('#tags').val();
    const postText = $('#postText').val();
    const token = $('meta[name="csrf-token"]').attr('content');

    const data = {title, tags, postText};

    const config = {
      type: 'POST',
      url: '/posts/create_post',
      headers: {
        'X-CSRF-TOKEN': token,
      },
      data,
      success: (data) => {
        console.dir(data)
      },
      error: (jqXHR, textStatus, thrownError, ) => {
        console.dir(data);
        console.log('textStatus: ' + textStatus);
        console.log('thrownError: ' + thrownError);
        console.log('message: ' + jqXHR.responseText);
      }
    }
    $.ajax('/posts/create_post', config);
  });

我的路线:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Post;

class PostsController extends Controller
{

    public function store(Request $request){
      $validated = $request->validate([
        'title' => 'required',
        'postText' => 'required',
      ]);

      if($validated){
        $post = new Post;
        $post->title = $request->input('title');
        $post->tags = $request->input('tags');
        $post->postText = $request->input('postText');
        $post->save();
        return redirect('/posts');
      } else {
        return redirect('/add-post')->with('error', 'Something went wrong!');
      }
    }
}


我的 RouteServiceProvider.php:

<?php

use Illuminate\Support\Facades\Route;

Route::get('/', 'PostsController@index')->name('posts.all');
Route::get('/new', 'PostsController@createPost');
Route::get('/{id}', 'PostsController@show');
Route::post('/create_post', 'PostsController@store')->name('api.create_post');

0 个答案:

没有答案
相关问题