簡體   English   中英

如何使用 VueJS 獲取 json web API 的值

[英]How to get value of json web API using VueJS

我是 Vue.JS 的新手。 實際上我試圖通過輸入路由號碼來獲取銀行名稱。

API: https : //www.routingnumbers.info/api/name.json?rn=011103093

export default {
        data: function () {

            return {
                picker: new Date().toISOString().substr(0, 7),
                resultsArray: {
                    'name' : '',
                    'message' : '',
                    'code' : '',
                    'rn' : ''
                },
         }
     }
   }

methods: {
           /* searchBasedOnMonthAndType() {
                let app = this;
                app.modeldailog = false
                app.rows = [];
                app.renderInvoicesBasedOnMonth(app.picker);
            },*/

            getBankName() {
                let app = this;
                app.rows = [];
                var rn = '011103093';
                $.ajax({
                    url: 'https://www.routingnumbers.info/api/name.json?rn=' + rn,
                    success(res) {
                        if (res.results != null) {
                            app.resultsArray = res.results;
                        } else {
                            // console.log(app.resultsArray);
                            // console.log("test after");
                            alert("data not fetched");
                        }


                    }

                });
            },
}

<label>Routing Number</label>
 <input type="text" name="routingNo" v-validate="'required|numeric'"  v-model="paymentinfo.routing_no" class="form-control input-sm" v-on:keyup="getBankName();">

<label>Bank Name</label>
<input type="text" name="chck_bank_name" v-validate="'required'" class="form-control input-sm" v-bind:value="resultsArray.name">

我收到 Ajax 響應為空。 每次其他部分都在執行。

也許您在$ .ajax方法的選項中打錯了字。 嘗試這個:

getBankName() {
  let app = this;
  app.rows = [];
  var rn = '011103093';
  $.ajax({
    url: 'https://www.routingnumbers.info/api/name.json?rn=' + rn,
    success: (res) => {
      if (res != null) {
        app.resultsArray = res;
      } else {
         // console.log(app.resultsArray);
         // console.log("test after");
        alert("data not fetched");
      }
    }
  });
},

僅供參考:該api調用的結果不是數組。 就像這樣:

{"name": "TD BANK NA", "message": "OK", "code": 200, "rn": "011103093"}

看起來您應該使用類似這樣的東西:

$.ajax(...).done(data => {
  console.log(data)
}).fail(() => {
  console.log('fail')
})

PS最好使用const vm = this; 而不是let app = this; 這是Vue.js中的事實標准

Ajax請求成功,但是if條件失敗,因為res中沒有這樣的關鍵“結果”(由ajax返回的響應)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM