本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Laravel AJAX 请求进入路由 api Vue 错误

发布于2024-11-30 20:06     阅读(183)     评论(0)     点赞(27)     收藏(2)


我正在尝试使用 Vue 发出 ajax 请求,以使用 auth 中间件从 API 路由获取数据,以获取最近创建的问题。我能够在不检查 auth 的情况下让它工作,但我需要它检查 auth 并获取创建请求的用户 ID。我目前有这个。我的观点:

<script type="text/javascript">
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
</script>
<script src="/public/js/adminApp.js"></script>
<template id="messages-template">
  <div>
    <ul class="menu" v-for="messages in list">
      <li><!-- start message -->
        <a href="#">
          <div class="pull-left" style="margin-left: 9px;margin-right: 9px;">
            <i class="fa fa-pencil"></i>
          </div>
          <h4>@{{ messages && messages.name }}
            <small><i class="fa fa-clock-o"></i> 5 mins</small>
          </h4>
        </a>
      </li>
    </div>
  </div>
</template>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script type="text/javascript" src="/public/js/messages.js">
</script>

我的 api.php 路线:

<?php

use Illuminate\Http\Request;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::group(['middleware' => ['auth:api']], function () {
  Route::get('/test', function (Request $request) {
    return App\issue::latest()->get();
  });
});

我的 messages.js vue 脚本:

Vue.component('messages', {
  template: '#messages-template',
  data: function (){
  return {
    list:[]
  };},
  created (){
    $.getJSON('/api/test', function(messages){
      this.list = messages;
    }.bind(this))
  }
});

new Vue({
  el: '#messagesArea'
});

我当前收到的错误消息是 401 并且路由正在返回:{"error":"Unauthenticated."}


解决方案


您已写道:

'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')

这将查找<meta>名称为 的元素csrf-token,并解析出content。因此,要使其正常工作,您需要将该meta标签添加到文档头。试试这个:

<meta id="token" name="csrf-token" content="{{ csrf_token() }}">


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/558233/2edcb42e23d19ff9bfd1/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)