laravel + vue js API 存储功能在共享主机上不起作用,但在本地主机上运行良好

时间:2021-04-20 10:40:31

标签: laravel vue.js

除 create (store) 外,所有 cruds 在共享主机和本地主机上都运行良好。

这是我的 addtoqueue 控制器:

public function store(Request $request)
{
   $last = antri::whereDate('created_at', Carbon::today())->latest()->first();

   if ( $last ) {
       $tambah =  $last->number + 1;
   }
   else {
       $tambah =  1;
   }
    
   $newantri = new antri;
   $newantri->user_id = $request->user_id;
   $newantri->number = $tambah;
   $newantri->called = 0;

   $newantri->save();
   return $newantri;
}

model

class antri extends Model
{
   use HasFactory;
}

api route :

Route::post('queue', [addtoqueue::class, 'store']);

触发器:

<v-btn elevation="2" v-on:click="increase" >Ambil Nomor Antrian</v-btn>

脚本:

methods: {
increase: function() {
    axios.post('/api/queue/', {
       user_id: this.user.id
    })
.  then( response=> {
     if( response.status == 200 ) {
      this.$emit('itemchanged');
     }
   })
.  catch( error => {
     console.log(error);
   })
  window.location.reload();      
}

使用 postman 测试在本地和共享托管数据库上也运行良好。 谁能弄清楚似乎是什么问题?

1 个答案:

答案 0 :(得分:0)

我发现了问题。每次请求 Status Code 301 moved permanently 时我都会收到 post method。这导致 url 结构从 domain/api/target 变为 domain/public/api/target,当然它不会命中控制器中的 store 函数。 我编辑了 .htaccess 文件夹中的 public 文件: RewriteRule ^ %1 [L,R=301]RewriteRule ^ %1 [L,R=307]

这意味着从永久移动到临时重定向。

这解决了我的问题。