0

这让我这两天头疼。我最近将我的 laravel 应用程序更新到 5.3,在我拉入 Laravel/passport 的本地环境中。安装后,一切都按预期工作。

当我将此更新推送到生产服务器时,一切仍然有效,但 vue 在护照组件上抛出错误。我对 vue 还是很陌生,我找不到导致这种情况的原因。

我尝试的最后一件事是在生产服务器上重新安装 Laravel 和护照,这会导致相同的错误。当我将此安装推送到本地计算机时,一切正常。我猜这是某种依赖错误。

这些是错误:

[Vue warn]: Error when evaluating expression "token.scopes.length > 0": TypeError: Cannot read property 'length' of undefined (found in component: <passport-authorized-clients>)
[Vue warn]: Error when evaluating expression "token.client.name": TypeError: Cannot read property 'name' of undefined (found in component: <passport-authorized-clients>)
[Vue warn]: Error when evaluating expression "token.scopes.length > 0": TypeError: Cannot read property 'length' of undefined (found in component: <passport-authorized-clients>)
[Vue warn]: Error when evaluating expression "token.client.name": TypeError: Cannot read property 'name' of undefined (found in component: <passport-authorized-clients>)

有没有人遇到过同样的错误,我该如何解决?

编辑:我设法解决了这个问题。我将 php5.6 更新为 php7 并安装了以下 PHP 模块;libgmp-dev,php-gmp。当我再次进行全新安装时,npm 抱怨护照需要两个依赖项;mdanter/ecc 和 indigophp/hash-compat

4

1 回答 1

1

我曾经也有过一样的问题。这里的解决方案帮助了我。它建议将以下内容添加到resources/assets/js/bootstrap.js

Vue.http.interceptors.push((request, next ) => {
    next((response) => {
        if( 'Content-Type' in response.headers 
            && response.headers['Content-Type'] == 'application/json' ){
            if( typeof response.data != 'object' ){
                response.data = JSON.parse( response.data );
            }
        }

        if( 'content-type' in response.headers
            && response.headers['content-type'] == 'application/json' ){
            if( typeof response.data != 'object' ){
                response.data = JSON.parse( response.data );
            }
        }
    });
});
于 2016-09-23T09:59:58.083 回答