aye伙计们!
我正在学习使用vue.js
做些什么。不幸的是,我被困在了。我想要做的是向我的示例API发送请求,该请求使用简单的json格式对象进行响应。
我希望将此对象作为组件中的数据 - 但无论出于何种原因,它似乎都不会这样做。
Ofc我试图在stackoverflow上找到解决方案,但也许我只是盲目或者这就像其他人写的代码一样。我甚至在官方的vue网站上找到this example,但他们做的和我做的一样......我猜?
顺便说一句。当我在一个单独的文件中运行fetchData()
函数时,它确实有效,我可以访问我从API获得的数据。没有代码的变化..只是没有围绕它的vue。我现在真的很困惑,因为我不知道错误是什么。
代码:
var $persons = [];
并在我的组件内:
data: {
persons: $persons,
currentPerson: '',
modal: false
},
created: function() {
this.fetchData()
},
methods: {
fetchData: function () {
var ajax = new XMLHttpRequest()
ajax.open('GET', 'http://api.unseen.ninja/data/index.php')
ajax.onload = function() {
$persons = JSON.parse(ajax.responseText)
console.log($persons[0].fname)
}
ajax.send()
}
},
[...]
答案 0 :(得分:2)
首先,确保@Override
public void onReceive(Context context, Intent intent) {
if (intent != null) {
if (intent.getAction().equals(ACTION_BUTTON_REFRESH)) {
//make some logic here on button refresh
} else if (intent.getAction().equals(ACTION_BUTTON_SHARE)) {
//make some logic here on button share
} else {
super.onReceive(context, intent);
}
}
}
回调实际上正在触发。如果GET请求导致错误,onload
将不会触发。 (在您的情况下,错误与CORS相关,请参阅@Pradeepb建议的this post)。
其次,您需要直接引用onload
数据属性,而不是使用初始化persons
的{{1}}数组。
它看起来像这样(在$persons
方法内):
persons