【问题标题】:Strange behavior between vue-router and Laravel's routervue-router 和 Laravel 的路由器之间的奇怪行为
【发布时间】:2018-04-05 06:32:17
【问题描述】:

我正在构建一个 Laravel 网站,在该网站上我使用 VueJS 来显示元素并处理不同的路线,因此 Laravel 只加载一次,然后让 VueJS 控制。请记住,即使我习惯了 Javascript,我也是 VueJS 的初学者

到目前为止,我在 VueJS 中成功设置了我的路由,并且它们可以正常工作:我可以毫无问题地从一个页面转到另一个页面。

但是,我想访问一个包含表单的页面,因为它是 Laravel,所以我将我的 csrf 令牌作为 <meta> 放在布局的 <head> 中。

尽管如此,由于缺少 csrf 令牌,我不断收到错误消息。当我查看源代码时,我可以看到 Laravel 实际上加载了默认的 404 页面,这显然不包含任何 csrf 令牌。

我的问题如下:我应该如何告诉 Vue 或 Laravel 他应该让另一个处理 url?除了为 Laravel 声明与 VueJS 相同的路由之外,还有其他方法吗?

提前谢谢你

【问题讨论】:

    标签: javascript php laravel-5 vue.js


    【解决方案1】:

    我们使用这个路由规则将所有请求指向 Vue 应用程序,在我们的例子中是 example.com/app。根据需要进行调整。

    Route::get('app/{any?}', function () {
        return view('app');
    })->where(['any' => '.*']);
    

    【讨论】:

    • 谢谢你的回答,我添加了路由,重启了服务器以防万一,但我收到了"The page has expired due to inactivity. Please refresh and try again. 这是那种说我没有 CSRF 令牌的消息在谈论
    • 这是与路由不同的问题。发出 POST 请求时,您的 Vue 应用程序需要读取并传递 CSRF 令牌。你如何做到这一点取决于你的代码和你用来发出 HTTP 请求的库(Axios、vue-resource 等)
    • 谢谢,我安装了 Axios 并设法使一些东西工作,它并不完美,但它不再是这个问题的一部分
    猜你喜欢
    • 2014-10-23
    • 1970-01-01
    • 2017-12-14
    • 2015-09-27
    • 2019-04-26
    • 1970-01-01
    • 2018-03-27
    • 2019-03-02
    相关资源
    最近更新 更多