在 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');