http://drupal.org/node/252859
“重定向到 url ...”肯定会导致 Fivestar 的 AJAX 投票机制出现问题。这是正在发生的事情:
通常会发生什么: - 用户点击 Fivestar 小部件进行评分。- AJAX 请求由当前页面发出。- VotingAPI 保存投票。- Fivestar 生成 XML 并打印页面。- 当前页面接收 XML,然后使用新值更新投票小部件。
VotingActions 会发生什么: - 用户点击 Fivestar 小部件进行评分 - 发出 AJAX 请求 - VotingAPI 记录投票 - VotingActions 挂断并说“哦,我正在重定向这个 URL” <-- 哪里出错了 - 而不是返回XML 到调用页面(这将更新投票),原始页面返回一个完整的 HTML 页面,其中包含 VotingActions 重定向页面的任何位置。- Fivestar 无法生成它的 XML,因为 VotingActions 已经使用 drupal_goto() 结束了执行。
所以我认为这不是 VotingActions 或 Fivestar 中的错误,这只是以不兼容的方式使用两个功能的情况。为了使这项工作顺利进行,Fivestar 必须不使用 AJAX 驱动,而是重新加载页面以保存投票。
Fivestar 提供了一个不错的 JavaScript 钩子,您可以使用它转到下一页。如果您将 JavaScript 添加到包含以下内容的页面:
function fivestarResult(voteResult) {
window.location.href = 'http://google.com';
}