Ajax в Laravel выдает внутреннюю ошибку 500

#php #ajax #laravel

#php #ajax #laravel

Вопрос:

Я пытаюсь извлечь данные в laravel с помощью метода ajax get. Все в порядке, но когда я делаю запрос Ajax, URL-адрес запроса изменяется автоматически.

Например, мой URL http://localhost/project/size/ . Но при вызове запроса Ajax URL автоматически изменяется следующим образом http://localhost/project/size?idSize=4-small — после этого отображается ошибка 404.И при использовании

 url: "{{ route('size') }}"
  

Отображается ошибка 500 Internoal.
Вот мой код ajax.

 <script type="text/javascript">
        $(document).ready(function () {
        $('#selectSize').change(function () {
            var idSize = $(this).val();
            if (idSize == "") {
                return false;

            }
            $.ajax({
                url: '/size',
                type: 'GET',
                data: { idSize: idSize },
                beforeSend: function (request) {
                    return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content'));
                },
                success: function (response) {
                    console.log(response);
                    alert(response);
                    var arr = response.split('#');
                    $('#getPrice').html("USD"   arr[0]);
                    $('#price').val(arr[0]);
                    if (arr[1] == 0) {
                        $('#cartButton').hide();
                        $('#Availability').text('Out Of Stock');
                    }
                    else {
                        $('#cartButton').show();
                        $('#Availability').text('In Stock');
                    }
                },
                error: function (err) {
                    console.log(err);
                    alert("Something Went Wrong, Please check again");
                }
            });
        });
    });
</script>
  

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

 //Here I Am getting Product Price
public function getProductPrice(Request $request){
    $data = $request->all(); 
    print_r($data);
    die();
    $proArr = explode("-",$data['idSize']);
    // echo $proArr[0]; echo $proArr[1];
    $proAttr = ProductAttribute::where(['product_id'=>$proArr[0],'size'=>$proArr[1]])->first();
    echo $proAttr->price;
    echo "#";
    echo $proAttr->stock; 
    // return $getCurrencyRates = Product::getCurrencyRates($proAttr->price);
    // echo $proAttr->price."-".$getCurrencyRates['USD_Rate']."-".$getCurrencyRates['GBP_Rate']."-".$getCurrencyRates['EUR_Rate'];
    // echo "#";
    // echo $proAttr->stock; 
}
  

Мои маршруты

 Route::get('size','ProductController@getProductPrice');
  

Комментарии:

1. Является ли этот маршрут в api.php or web.php route? Это внутри какой-то группы?

2. quirel@ ты там?

Ответ №1:

name() затем используйте route в помощнике ajax router()

 Route::get('size','ProductController@getProductPrice')->name('size');
  

затем в ajax

 $.ajax({
url: "{{ route('size') }}",
  

тогда ваш ajax URL всегда будет правильным

Комментарии:

1. Камлеш Пол@ты там?

2. камлеш Пол@url: «{{ route(‘size’) }}», показывая ошибку 500 internol