Ajax Laravel5.2PostRoute返回纯html文本

Ajax Laravel5.2PostRoute返回纯html文本,ajax,laravel,post,laravel-5.2,Ajax,Laravel,Post,Laravel 5.2,每当我向“tasks/add”发送post请求时,我都希望用户返回到新页面,但我得到的只是弹出窗口中的纯html文本 Route.php代码 Route::post('tasks/add', function() { return view('secrets'); }); 这是我的ajax请求: $("#frm").submit(function(e){ e.preventDefault(); var customer = $("in

每当我向“tasks/add”发送post请求时,我都希望用户返回到新页面,但我得到的只是弹出窗口中的纯html文本

Route.php代码

Route::post('tasks/add', function() {
    return view('secrets');
});
这是我的ajax请求:

$("#frm").submit(function(e){
             e.preventDefault();
             var customer = $("input[name=customer]").val();
             var details = $("input[name=details]").val();
             var dataString = 'customer='+customer+'&details='+details;

             $.ajax({
                url: "tasks/add",
                type:"POST",
                beforeSend: function (xhr) {
                    var token = $('meta[name="csrf_token"]').attr('content');

                    if (token) {
                          return xhr.setRequestHeader('X-CSRF-TOKEN', token);
                    }
                },
               data : dataString,
                success:function(data){
                    console.log(dataString);
                    alert(data);
                },error:function(){ 
                    alert("error!!!!");
                }
            }); //end of ajax

            });

        });

以前有人遇到过这个问题吗?

您正在使用Ajax调用路由方法。因此,当
Route::post(…)
返回视图
'secrets'
时,它会将其返回到Ajax方法,并由
数据
变量持有。在Routes文件中说
return
并不意味着神奇地重定向到某个视图,它就像任何其他返回值的函数一样

您当前有
alert(data)
,它只是说用
data
持有的任何内容发出警报,在本例中,它是视图的html文本

相反,取出
警报()
并将

window.location.replace('<path/to/secrets>')
你可以说

window.location.replace('/secrets')

您正在使用Ajax调用路由方法。因此,当
Route::post(…)
返回视图
'secrets'
时,它会将其返回到Ajax方法,并由
数据
变量持有。在Routes文件中说
return
并不意味着神奇地重定向到某个视图,它就像任何其他返回值的函数一样

您当前有
alert(data)
,它只是说用
data
持有的任何内容发出警报,在本例中,它是视图的html文本

相反,取出
警报()
并将

window.location.replace('<path/to/secrets>')
你可以说

window.location.replace('/secrets')

您可以显示您收到的确切数据吗?您正在将响应放入“alert()”中,因此html仅显示为html文本。你不想这样,你想重定向到一个新的页面,而不是提醒结果,这只是我试图加载的页面的html@tam I从ajax请求中删除了警报,但现在帖子什么也不做。当我查看我的post响应时,它只是一个普通的html文件,但我希望为用户加载该html。您可以显示您收到的确切数据吗?您正在将响应放入“alert()”中,因此html仅显示为html文本。你不想这样,你想重定向到一个新的页面,而不是提醒结果,这只是我试图加载的页面的html@tam I从ajax请求中删除了警报,但现在帖子什么也不做。当我查看我的post响应时,它只是一个普通的html文件,但我希望为用户加载该html。这确实是一个使其工作的解决方案,但我希望保持它干净,并通过laravel route.php处理重定向。因此,基本上我希望我的用户在帖子完成后被重定向到“机密”页面。这可能吗?谢谢你的建议,但它会再次将纯html返回到我的ajax请求中。不管怎样,我非常感谢你帮助我。我将通过ajax保持重定向:)如果我想到其他事情,我会让你知道,但我认为这是实现的方法。总的来说,我发现在Laravel中使用Ajax有时会有点混乱,就是这样。我同意,如果您有任何比在post/get请求中使用Ajax更好的建议,您可以随时向我发送消息。这确实是一个解决方案,可以让它工作,但我希望保持干净,并通过Laravel route.php处理我的重定向。因此,基本上我希望我的用户在帖子完成后被重定向到“机密”页面。这可能吗?谢谢你的建议,但它会再次将纯html返回到我的ajax请求中。不管怎样,我非常感谢你帮助我。我将通过ajax保持重定向:)如果我想到其他事情,我会让你知道,但我认为这是实现的方法。总的来说,我发现在Laravel中使用Ajax有时会变得有点混乱,就是这样。我同意,如果您有任何比在post/get请求中使用Ajax更好的建议,您可以随时向我发送消息。