如何在使用axios发送ajax请求时添加令牌?

如何在使用axios发送ajax请求时添加令牌?,ajax,laravel,vue.js,axios,Ajax,Laravel,Vue.js,Axios,我正在使用Laravel5.3和vue.js2.0, 我使用axios()发送ajax请求, 我按照文档设置令牌,如下所示: <script> axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; //The error is at this line. new Vue({ el: "#app", data: function () { r

我正在使用Laravel
5.3
和vue.js
2.0

我使用axios()发送ajax请求,
我按照文档设置
令牌
,如下所示:

<script>

    axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;  //The error is at this line.

    new Vue({
        el: "#app",
        data: function () {
            return {
                items: []
            }
        },
        mounted: function () {
            this.$nextTick(function () {
                axios.get('/articles').then(function (response) {
                    response.data.forEach(function (item) {
                        item.selected = false;
                    });
                    this.items = response.data;
                }).catch(function (error) {

                    console.log(error);
                });
            });
        }
    });
</script>
Uncaught ReferenceError: AUTH_TOKEN is not defined 

我该怎么办?

您在窗口上设置了身份验证令牌了吗?如果不是
window.AUTH\u令牌
自然不会被定义

laravel应用程序头部的常见设置是:

<script>
    window.Laravel = <?php echo json_encode([
        'csrfToken' => csrf_token(),
    ]); ?>
</script>

window.Laravel=
因此,这将设置csrf令牌。我无法想象您将如何设置身份验证令牌,因此您可能只需要了解调用
window.Auth\u令牌的原因


就生成令牌的方式而言,这取决于您需要的类型,但一旦您拥有了令牌,您可能希望查看它的存储方式。这样做将允许您在整个应用程序中访问它,而无需在窗口上存储任何内容。

您是否在窗口上设置了
AUTH\u令牌?如果不是
window.AUTH\u令牌
自然不会被定义

laravel应用程序头部的常见设置是:

<script>
    window.Laravel = <?php echo json_encode([
        'csrfToken' => csrf_token(),
    ]); ?>
</script>

window.Laravel=
因此,这将设置csrf令牌。我无法想象您将如何设置身份验证令牌,因此您可能只需要了解调用
window.Auth\u令牌的原因

就生成令牌的方式而言,这取决于您需要的类型,但一旦您拥有了令牌,您可能希望查看它的存储方式。这样做将允许您在整个应用程序中访问它,而无需在窗口中存储任何内容。

它应该是

axios.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('meta[name="csrf-token"]').getAttribute('content')
您可以删除

<script>
    window.Laravel = <?php echo json_encode([
        'csrfToken' => csrf_token(),
    ]); ?>
</script>

window.Laravel=

部分应该是

axios.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('meta[name="csrf-token"]').getAttribute('content')
您可以删除

<script>
    window.Laravel = <?php echo json_encode([
        'csrfToken' => csrf_token(),
    ]); ?>
</script>

window.Laravel=

部分

我对laravel不太了解,我们是否需要使用
JSON.parse(“”
而不是
echo JSON_encode()
将php数组转换为输出JSON对象,这样它就可以正常工作了。这里的问题似乎很简单,
AUTH_TOKEN
没有被设置在任何地方。我给这个脚本标签更多的是作为一个例子,说明如果全局js变量需要服务器端解析,如何在Laravel中设置它们。啊!我在上一篇评论中一直使用这种方法,从来没有想过输出的json字符串已经是有效的javascript对象文本……我对laravel不太了解,我们是否需要使用
json.parse(“”
)而不是
echo json_encode()
将php数组转换为输出json对象,这样它就可以正常工作。这里的问题似乎很简单,
AUTH_TOKEN
没有被设置在任何地方。我给这个脚本标签更多的是作为一个例子,说明如果全局js变量需要服务器端解析,如何在Laravel中设置它们。啊!我在上一篇评论中一直使用这种方法,从未想过输出的json字符串已经是有效的javascript对象文本。。。