我在 IE 中遇到了一个问题,在 twitter 中成功发布链接后,没有调用 AJAX 成功事件。我有这个代码:
jQuery(document).ready(function () {
jQuery('#tbookmarklet').twitterbutton({
url: myshareUrl,
title: myTitle,
layout: 'none',
ontweet:function(response){
jQuery.ajax({
url: tCallbackUrl,
type: 'get',
error: function() {
alert('sorry, it fails');
},
success: function() {
alert('tweet success');
}
});
},
});
jQuery.ajax({ url: 'https://platform.twitter.com/widgets.js', dataType: 'script', cache:true});
});
没有办法提醒成功消息,它也没有落入错误事件中,所以我无法真正找出问题所在。这仅发生在 IE 中,不会发生在其他浏览器(如 firefox 或 chrome)上,但链接已在 twitter 中成功发布。
我已经在网上阅读了使用该complete
事件的内容,但是即使 ajax 处理失败,它仍然会执行您在完整事件中指定的功能,因此使用完整不是一个好主意。
我的代码有什么问题?我需要做什么才能轻松确定它的可能原因。
谢谢。
我必须更新我的问题:
正如 Furqan 建议的那样,使用 crossDomain: true。我已将我的代码更新为:
jQuery.ajax({
url: 'https://platform.twitter.com/widgets.js',
dataType: 'jsonp',
crossDomain:true,
CallbackName: 'SocialMedia'
});
而不是这个:
jQuery.ajax({
url: 'https://platform.twitter.com/widgets.js',
dataType: 'script',
cache:true
});
但它仍然不能解决我的问题。经过进一步调查,我发现 ontweet 事件并没有真正在 IE 中触发。可能是什么原因?有人遇到过这个问题吗?
在我的 IE 网络分析器中,我得到了这个结果:
但是,它发布到了推特上。我的问题是当它重定向回我的网站(从 twitter 到我的网站)时,success
事件没有被调用,因为ontweet
事件也没有被触发。
对此有任何想法吗?
关于这个问题的更新:
经过进一步研究,我发现 Twitter 代码确实存在错误。IE 中不会触发推文事件。
我发现与该问题相关的链接:
https://dev.twitter.com/discussions/671