【问题标题】:Laravel 5.2 post route returns plain html textLaravel 5.2 发布路由返回纯 html 文本
【发布时间】:2016-04-22 14:28:16
【问题描述】:

每当我向“任务/添加”发送发布请求时,我都希望用户返回新页面,但我得到的只是弹出窗口中的纯 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

            });

        });

有人遇到过这个问题吗?

【问题讨论】:

  • 您能说明一下您收到的具体数据吗?
  • 您将响应放入“alert()”中,因此 html 仅显示为 html 文本。你不想这样,你想重定向到一个新页面,而不是提醒结果
  • 这只是我试图加载的页面的 html。 @tam 我从 ajax 请求中删除了警报,但现在帖子什么也没做。当我查看我的帖子回复时,它只是一个普通的 html 文件,但我希望为用户加载该 html。

标签: ajax laravel post laravel-5.2


【解决方案1】:

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

您当前拥有alert(data),它只是说用data 持有的任何内容发出警报,在这种情况下是您视图的html 文本。

相反,取出alert() 并放入

window.location.replace('<path/to/secrets>')

成功后重定向到您想要的页面。

假设您的 Routes 文件有类似的内容:

Route::get('/secrets', function() {
    return view('secrets');
});

你可以说

window.location.replace('/secrets')

【讨论】:

  • 这确实是一个让它工作的解决方案,但我想保持它干净并通过 laravel route.php 处理我的重定向。所以基本上我希望我的用户在帖子完成后被重定向到“秘密”页面。这可能吗?
  • 感谢您的建议,但它再次将纯 html 返回到我的 ajax 请求。无论如何,我非常感谢你帮助我。我将通过 ajax 保持重定向:)
  • 如果我想到其他事情我会告诉你,但我认为这是这样做的方式。总的来说,我发现在 Laravel 中使用 Ajax 有时会有点混乱,就是这样。
  • 我同意,如果您有任何比使用 ajax 发送/获取请求更好的建议,您可以随时给我发消息。
猜你喜欢
  • 2015-05-27
  • 1970-01-01
  • 2017-08-02
  • 2016-08-30
  • 2016-12-01
  • 2016-06-24
  • 1970-01-01
  • 2015-12-10
  • 2021-01-31
相关资源
最近更新 更多