pir*_*res 6 dbpedia vue.js axios
我想从 dbpedia 端点获取数据,在 vue js 中使用 axios。
我曾经axios.get从 dbpedia 获取数据,但在控制台中出现错误提示:
类型错误:name.toUpperCase 不是函数
我该如何解决?
created(){
this.fetch();
},
methods: {
fetch(){
axios
.get('http://id.dbpedia.org/sparql?query=SELECT+DISTINCT+?concept+WHERE+{+?s+a+?concept+}+LIMIT+50', {
headers: 'Access-Control-Allow-Origin: *'
}).then(response => {
/* eslint-disable */
console.log('SUCCESS');
console.log(response);
}).catch((e) => {
console.log(e);
})
}
},
Run Code Online (Sandbox Code Playgroud)
您需要将您的 Axios 请求更改为:
methods: {
async fetch () {
await axios.get('https://cors.io/?http://id.dbpedia.org/sparql?query=SELECT+DISTINCT+?concept+WHERE+{+?s+a+?concept+}+LIMIT+50', {
headers: {'Access-Control-Allow-Origin': *},
mode: 'cors',
}).then(response => {
/* eslint-disable */
console.log('SUCCESS');
console.log(response.data);
}).catch((e) => {
console.log(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
五个变化:
1)使axios成为headers一个对象(注意引号在哪里)
2)console.log(response.data)
3) 新增mode: 'cors'
4)cors为 URL 添加了前缀,因为您是从托管环境之外的第三方域检索数据
5)将您的fetch函数包装在 中async await,因为 axios 是一个基于 Promise 的库。
| 归档时间: |
|
| 查看次数: |
10380 次 |
| 最近记录: |