路由 registrar-articulo 不支持 GET 方法。支持的方法:POST - axios post

问题描述 投票:0回答:1

我正在使用 laravel 9 开发一个项目。 我在 axios 中的请求出现问题,收到以下错误:

405 方法不允许

我已经在我的项目中应用了以下命令:

php artisan cache:clear
php artisan route:clear
php artisan config:clear
npm run build

但是错误仍然存在。

此问题仅出现在一个特定请求中,即添加记录请求。

enter image description here

js文件

 var fileInput = document.getElementById('formFile');
      var file = fileInput.files[0];

      const formData = new FormData();
      // Agregar el archivo al FormData
      formData.append('imageFile', file, file.name);
      formData.append('nombre', nombre);
      formData.append('url', url);
      formData.append('fechaPublicacion', fechaPublicacion);
      formData.append('horaPublicacion', horaPublicacion);
      formData.append('tiempoLectura', tiempoLectura);
      formData.append('textoResumen', textoResumen);
      formData.append('temaId', temaId);
      formData.append('activoPost', activoPost);
      formData.append('detalleDataPost', JSON.stringify(detalleDataPost));
      formData.append('postRelacionados', JSON.stringify(arrayPostIds));

      axios.post(baseUrl+"/registrar-articulo", formData, {
        headers: { 
            'X-CSRF-TOKEN': window.CSRF_TOKEN,
            'Content-Type': 'multipart/form-data'
        }
      })
      .then(function(response) {

控制器

public function regitrarArticulo(Request $request){
        $msg = "";
        $exito = 0;

        $nombre = $request->get("nombre");
        $url = $request->get("url");
        $fechaPUblicacion = $request->get("fechaPublicacion");
        $horaPublicación = $request->get("horaPublicacion");
        $tiempoLectura = $request->get("tiempoLectura");
        $textoResumen = $request->get("textoResumen");
        $temaId = $request->get("temaId");
        $activoPost = $request->get("activoPost");
        $detallePost = $request->get('detalleDataPost');
        $postRelacionados = json_decode($request->get('postRelacionados'), true);
        $usuarioAgrego = Auth::user()->id;
        $fechaFinal = $fechaPUblicacion." ".$horaPublicación.":00";
        $imageName = '';
        $path = '';
        $imageName = time().'.'.$request->imageFile->extension();
        $path = $request->file('imageFile')->storeAs('images', $imageName, 'public');

        $articulosEncontrado = DB::table('posts')
        ->join('temas', 'temas.id', 'posts.tema_id')
        ->where('posts.urlpost', $url)
        ->where('temas.id', $temaId)
        ->get();
        if(count($articulosEncontrado) > 0){

Web.php

Route::post('/registrar-articulo', [PostController::class, 'regitrarArticulo'])->middleware('auth')->name('registrar-articulo');
Route::post('/modificar-articulo', [PostController::class, 'updatePost'])->middleware('auth')->name('modificar-articulo');

路线列表

enter image description here

我认为问题在于我如何在 axios 中发出请求,因为我必须指出我有另一个请求可以使用 post 方法进行修改,但这个响应正确。

我需要知道我有什么错误,或者我在应用到我的项目时缺少考虑因素,以使其正常工作。

php methods axios cpanel laravel-9
1个回答
0
投票

回答我的问题时,我发现导致此错误的原因是我在表单数据中发送的数据之一,特别是名称,该名称是用2个括号注册的,(示例),单独它们没有引起任何问题,但是当在同一个句子中发生了错误,所以我应用了encodeURIComponent来发送该信息,并应用了urldecode来接收它,从而解决了这个问题。 恐怕我不知道这个失败的原因,我假设 formData 应该被编码为文本并且没有这个问题。 我希望它对其他人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.