Laravel Ajax Post Exception

时间:2015-10-10 19:58:49

标签: ajax 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);
                }
            });
        });

我收到此错误。

  

RouteCollection.php第219行中的MethodNotAllowedHttpException:

这是我的路线

Route::group(['prefix' => 'ajax'], function () {
        Route::post('product/redirect_variant', [
            'uses' =>'AjaxController@redirectVariant',
            '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());
    }
}

有什么问题?

1 个答案:

答案 0 :(得分:0)

您的Javascript正在欺骗PATCH请求,而您的路由已设置为POST。

你可以尝试:

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