#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
orweb.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