Javascript axios.get不返回JSON
我正在学习Vue.js框架。更具体地说,使用Axios使用API 我有以下代码:Javascript axios.get不返回JSON,javascript,vue.js,axios,Javascript,Vue.js,Axios,我正在学习Vue.js框架。更具体地说,使用Axios使用API 我有以下代码: var app = new Vue({ el: '#app', data () { return { info: null } }, mounted () { axios .get('https://api.coindesk.com/v1/bpi/currentprice.json') //.get('http://calapi.inadi
var app = new Vue({
el: '#app',
data () {
return {
info: null
}
},
mounted () {
axios
.get('https://api.coindesk.com/v1/bpi/currentprice.json')
//.get('http://calapi.inadiutorium.cz/api/v0/en/calendars/general-en.json')
.then(response => (this.info = response))
}
})
axios,快https://api.coindesk.com... 生产线运转正常。不幸的是,第二行没有注释
有没有人能告诉我为什么评论行没有回应
代码:
提前感谢。似乎不支持CORS。这是因为CORS。您可以安装名为CORS的Google Chrome插件并启用它。这将允许您的axios调用工作。Codepen使用https,但您正试图访问使用http的网站上的资源,如您在console中所看到的: js:25混合内容:页面位于 已通过HTTPS加载,但 请求了不安全的XMLHttpRequest终结点 . 此请求已被阻止;内容必须通过HTTPS提供 如果使用JSFIDLE而不是codepen,它将起作用:
此外,您请求的资源位于response.data中可以从response.data中检索响应数据 api.coindesk.com没有CORS问题,因为它已经包含访问控制允许源代码:*标题 将代码更改为:
axios.get('https://api.coindesk.com/v1/bpi/currentprice.json')
.then(response => (this.info = response.data))
查看正在发出的网络请求,您会发现它由于阻塞的混合内容标志而失败 有点挖掘表明,这可能是因为调用是通过http而不是https进行的,不幸的是,https只能由API的创建者修复。因此,浏览器无法发出请求,因为它认为响应不安全。阅读更多
不幸的是,这并不能真正回答问题,如果请求是从后端发出的,那么它可能对混合内容不太敏感,但在浏览器中,您可能很难从该API获得结果。例如,从邮递员处调用api响应时不会出现任何问题感谢您的响应。因此,如果最终用户没有CORS插件,它将无法工作?您如何从这个API中获得结果?使用和显示API中的数据最常用的方法是什么?它可以工作。您正在本地主机上运行应用程序,因此无法访问受CORS保护的服务。当你把你的应用程序放到网上时,就不会有问题了。