VUEJS Ошибка типа: $. ajax (...). Успех не является функцией - PullRequest
0 голосов
/ 15 января 2020

Я хочу подключить Vuejs к Local Payment Gateway,

добавить плагин для индекса. html

<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.pack.js"></script>
<script src="https://staging.doku.com/doku-js/assets/js/payment.js?version=<?php echo time()?>"></script> <!-- To prevent js caching -->
<link href="https://staging.doku.com/doku-js/assets/css/doku.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css" rel="stylesheet">

здесь, ниже моих методов

showPaymentPage() {
  post("payment/credit-card", {
    amount: this.amount+'.00',
    invoice: this.invoiceNumber,
    currency: 360
  })
    .then(res => {
      if (res.data) {
        console.log(res.data);
        // this.payment = res.data.message
        const data = new Object();
            data.req_merchant_code = res.data.data.mallid; //mall id or merchant id
            data.req_chain_merchant = 'NA'; //chain merchant id
            data.req_payment_channel = '15'; //payment channel
            data.req_transaction_id = res.data.data.invoice; //invoice no
            data.req_amount = res.data.data.amount;
            data.req_currency = res.data.data.currency; //360 for IDR
            data.req_words = res.data.words; //your merchant unique key
            data.req_session_id = new Date().getTime(); //your server timestamp
            data.req_form_type = 'full';
            data.req_customer_id = this.$store.getters.getUser.id;

            getForm(data);
      }
    })
    .catch(e => {
      console.log(e);
    });
},

но получите ответ в журнале консоли, как показано ниже

TypeError: $.ajax(...).success is not a function
at getForm (payment.js?version=1579060503:1)
at app.js:35908

Пожалуйста, помогите мне,

Ответы [ 3 ]

0 голосов
/ 16 января 2020

Ваш код правильный, с ним проблем нет, но с последним обновлением jQuery метод .success() больше не разрешен, поэтому приведенный ниже код выдаст ошибку.

$.ajax(url).success

Для более новую версию jquery, вы можете сделать:

$.ajax(url, {
  success: () => {
    // Do something
  }
})

Или

$.ajax({
  type: "GET",
  url,
  success: function () { 
    // Do something
  }
})

Или вы можете просто использовать цепной метод, например, так:

$.ajax(url).then(x => {
  // Do something
})

Или

$.ajax(url).done(x => {
  // Do something
})
0 голосов
/ 16 января 2020

Нет функции ajax (). Успех. Вы можете использовать что-то вроде этого:

$.ajax({
      url: "getvalue.php",  
      success: function(data) {
         return data; 
      }
   });
   
0 голосов
/ 15 января 2020

Мне кажется, что не определена функция успеха. Просто помните, что jquery не использует обещания, то есть вы не можете выполнить .then / .catch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...