【发布时间】:2021-03-24 04:20:56
【问题描述】:
大家好,我正在使用 laravel8 并使用 Ajax 在数据库中插入记录。
我的问题是,在我插入记录后,它会自动转到新页面,但它只包含一个作为 json 对象的响应(下面的页面截图)
如何防止这种情况并以正常方式重定向。
我的控制器代码:
public function store(Request $request){
$user = User::create($request->all());
return response()->json(['url'=>url('/users')]);
}
我的看法:
$.ajax({
type: "POST",
url: "{{route('users.store')}}",
data:{
name: $("#name").val(),
email : $("#email").val(),
image : $("#image").val(),
},
success: function(response){
if(response){
$("#userTable tbody").prepend(
'<tr><td>'+ response.id+'</td><td>'
+ response.name+'</td><td>',
+ response.email+'</td><td>',
+ response.image+'</td><td>'
)
window.location.href=response.url;
$("#userForm")[0].reset();
$("#userModel").model('hide');
}
这是页面
对不起我的英语不好
【问题讨论】:
-
/users的路由和控制器/方法是什么样的?你正在重定向那里 -
这里是路由:Route::get('/users', [App\Http\Controllers\UserController::class, 'index'])->name('users.index');这是方法: public function index(){ $users = User::orderBy('id', 'DESC')->get();返回视图('users.index',compact('users')); }
-
因此,如果您尝试向服务器发送发布请求以创建新用户,然后在创建用户后尝试显示索引页面,为什么需要执行 ajax 请求.您可以向服务器发出简单的 post 请求以创建新用户,然后重定向到索引页面
-
我不明白你会,所以我需要在 store 之后做什么,它总是在使用 Ajax 插入后给我一个带有 json 数组的新页面
-
很可能response.url包含存储在url键中的json,尝试这样response.url.url,这样你就得到了字符串,
window.location.href=response.url.url;