如何使用 VueJS 获取 json Web API 的值

Posted

技术标签:

【中文标题】如何使用 VueJS 获取 json Web API 的值【英文标题】:How to get value of json web API using VueJS 【发布时间】:2019-08-06 12:09:07 【问题描述】:

我是 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 响应为空。每次其他部分都在执行。

【问题讨论】:

【参考方案1】:

也许你在 $.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"

【讨论】:

【参考方案2】:

看起来你应该使用这样的东西:

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

附:最好使用const vm = this; 而不是let app = this;。它是 Vue.js 中事实上的标准

【讨论】:

以上是关于如何使用 VueJS 获取 json Web API 的值的主要内容,如果未能解决你的问题,请参考以下文章

意外的令牌 < 在 JSON 中的位置 0 vuejs

是否可以使用 Javascript/VuejS/Nodejs 包将特定的 JSON 键移动到 JSON 的顶部?

使用 jQuery $.getJSON() 从 Vuejs 方法中的本地 json 文件获取数据

Vuejs从本地json获取数据

如何在 vuejs 中使用 axios 显示获取的数据到 div

vuejs 返回json数据怎么循环渲染到页面