2015-10-10 4 views
0

У меня есть поле выбора. И я перенаправляю клиентов через поле выбора. Когда они выбирают, они перенаправляются.Laravel Ajax Post Exception

Прежде чем я начал писать код с laravel, моя система работала. После laravel у меня проблема с этим вопросом.

$('#parent_products').change(function(){ 
      productid = $(this).val(); 

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

      $.ajax({ 
       type: 'POST', 
       url: '{{ route('redirectVariant') }}', 
       data: { 
        productid : productid, 
        _method : 'PATCH' 
       }, 
       error: function(jqXHR, exception) { 
        alert('Hata \n' + jqXHR.responseText); 
       }, 
       success: function (data) { 
        window.location.replace(data); 
       } 
      }); 
     }); 

Я получаю эту ошибку.

MethodNotAllowedHttpException в RouteCollection.php линии 219:

Это мой маршрут

Route::group(['prefix' => 'ajax'], function() { 
     Route::post('product/redirect_variant', [ 
      'uses' =>'[email protected]', 
      'as' => 'redirectVariant', 
     ]); 
    }); 

Вот мой контроллер

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Http\Controllers\Controller; 

class AjaxController extends Controller 
{ 
    public function redirectVariant(Request $request){ 
     dd(Request::all()); 
    } 
} 

В чем проблема?

ответ

0

Ваш Javascript подделывает запрос PATCH, в то время как ваш маршрут настроен для POST.

Вы можете попробовать:

Route::group(['prefix' => 'ajax'],  function() { 
    Route::patch('product/redirect_variant', [ 
     'uses' =>'[email protected]', 
     'as' => 'redirectVariant', 
    ]); 
});