Получение 500 Внутренняя проблема во время ответа ajax - PullRequest
0 голосов
/ 06 октября 2019

Я борюсь с этим кодом. Я не могу отправить ответ с помощью ajax. Ajax-скрипт здесь.

$(document).ready(function () {
        $('#selectSize').change(function () {
                var idSize = $(this).val();
                $.ajax({
                        type: "get",
                        dataType: 'json',
                        url: 'getproductprice',
                        data: {
                                idSize: idSize
                        },
                        success: function (response) {
                                console.log("working");
                        },
                        error: function () {
                                console.log("error");
                        }
                });
        });
});

Вот разметка Blade

<select name="size" id="selectSize" style="width:150px;">
    <option value="">Select Size</option>
    @foreach($productDetails->attributes as $size)
        <option value="{{$productDetails->id}}-{{$size->size}}">{{$size->size}}</option>
    @endforeach
</select>

А вот код контроллера

public function getProductPrice(Request $request)
{
    $data = $request->all();
    $proArr = explode("-", $data['idsize']);
    $proAttr = ProductsAttribute::where(['product_id' => $proArr[0], 'size' => $proArr[1]])->first();
    $getCurrencyRates = Product::getCurrencyRates($proAttr->price);
    echo $proAttr->price . "-" . $getCurrencyRates['USD_Rate'] . "-" . $getCurrencyRates['GBP_Rate'] . "-" . $getCurrencyRates['EUR_Rate'];
    echo "#";
    echo $proAttr->stock;
}

Не знаю, что яЯ делаю неправильно. Когда я выбираю значение параметра. ошибка придет какphp) "

Ответы [ 2 ]

1 голос
/ 06 октября 2019

Ваш ajax должен быть -

$.ajax({
            url: 'getproductprice',
            type: 'POST',
            data: {idSize: idSize},
            beforeSend: function (request) {
                return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content'));
            },
            success: function (response) {
               console.log(response);
            },
            error: function (err) {
                console.log(err);
                alert("Something Went Wrong, Please check again");
            }
        });
0 голосов
/ 06 октября 2019

Сначала убедитесь, что вы добавили meta tag для csrf в своей голове

<meta name="csrf-token" content="{{ csrf_token() }}">

Наконец вам нужно добавить header объект в ваш объект ajax

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

это будет так

$.ajax({
   type: "get",
   dataType : 'json',
   headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
   },
   url:'getproductprice', 
   data: {idSize: idSize},
   success:function(response){
   console.log("working");
  },
  error:function(){
   console.log("error");
  }
});    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...