使用Django,我正在构建一个搜索功能,该功能随后将显示推文。
根据用户输入,AJAX会发布到视图,该视图返回ID列表,这些ID应该用于通过twitter API来获取推文。在AJAX成功函数中调用twttr.widgets.createTweet()
时,我得到:
API调用onLoad
时可以完美地工作。
我已经确认成功函数会触发。
我试图更改AJAX数据类型,该方法不起作用。
Ajax调用:
$.ajax({
url: '/',
type: 'POST',
datatype : "json",
data: {
'search': x,
},
success: function(data) {
a = data
genTweets(a)
});
genTweets(生成使用tweets填充的元素):
function genTweets(a){
if (a.length < 30){
for (i = 0; i < a.length; i++){
var newDiv = document.createElement("div");
x = String(a[i])
document.body.appendChild(newDiv)
newDiv.id = "tweet" + i
newDiv.setAttribute("tweetID", x)
newDiv.setAttribute("class", "offset-3 col-8")
genTweet(newDiv.id)
}
}
}
genTweet:
genTweet = function(tweet){
var tweet = document.getElementById(tweet);
var id = tweet.getAttribute("tweetID");
$('.dropdown-toggle').dropdown('toggle');
twttr.widgets.createTweet(
id, tweet)
}
答案 0 :(得分:0)
我发现了问题。由于AJAX响应是JSON,因此使用来自AJAX调用的数据运行twttr.widgets.createTweet()成为问题。这会导致ID未定义,API对此并不满意。使用data.key作为参数修复它。仍然不确定为什么只在AJAX调用中抛出此错误,但现在可以使用。