Я хочу знать, возможно ли отправлять данные с одного ajax на другой ajax или нет?
Звучит смущающе, я знаю, но вот объяснение:
У меня есть способ оплаты, где этополучает данные и обрабатывает их с помощью Ajax ( к сожалению, создатели этого API сильно ограничивают свой код ), поэтому даже если я попытаюсь добавить запрос ввода в код контроллера этого Ajax, ничего не получится, поэтому мне нужносделать еще один Ajax для обработки этого запроса на ввод.
Позволяет объяснить больше кодами:
controller
public function orderspayonline(Request $request, $id){
error_log('masuk ke snap token dri ajax');
$midtrans = new Midtrans;
//products data + user info etc.
//here magic happens
try
{
$snap_token = $midtrans->getSnapToken($transaction_data);
echo $snap_token;
}
catch (Exception $e)
{
return $e->getMessage;
}
}
Если я добавлю что-нибудь (я имею в виду что-либо) в этоtry{
часть, она перестает функционировать и возвращает ошибку!`даже я пытался перенаправить обратно своих пользователей, кроме повторения кода токена, который также выдавал ошибку. Так что, похоже, у меня действительно нет здесь никакой возможности, кроме как создать новую функцию и Ajax .
JavaScript
<script type="text/javascript">
$('.pay-button').click(function (event) {
$.ajaxSetup({
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
});
event.preventDefault();
// $(this).attr("disabled", "disabled");
var prdfoId = $(this).data('id');
$.ajax({
url: '{{url("orderspayonline")}}/'+encodeURI(prdfoId),
type: "POST",
cache: false,
success: function(data) {
var resultType = document.getElementById('result-type');
var resultData = document.getElementById('result-data');
function changeResult(type,data){
$("#result-type").val(type);
$("#result-data").val(JSON.stringify(data));
}
snap.pay(data, {
onSuccess: function(result){
changeResult('success', result);
console.log(result.status_message);
console.log(result);
$("#payment-form").submit();
},
onPending: function(result){
changeResult('pending', result);
console.log(result.status_message);
$("#payment-form").submit();
},
onError: function(result){
changeResult('error', result);
console.log(result.status_message);
$("#payment-form").submit();
}
});
}
});
});
</script>
Часть, которой мне нужно манипулироватьsnap.pay(data, {
, где результаты возвращаются.
В настоящее время они возвращаются в консоли и исчезают через секунду в результате echo $snap_token;
в моем контроллере. Я пытался получить их в скрытом вводе , но, как я уже говорил, я не могу получить результаты, потому что не могу изменить свой код try
, даже я пытался получить их после закрытия catch
части,происходит то же самое Ошибка .
Вопрос
- Как мне получить результаты в контроллере?
Мне нужнообновить базу данных с этими результатами.
Спасибо.