这是一个关于进行 JavaScript 调用的最佳实践的问题,该调用生成标准的“连接到 QuickBooks”按钮(用于通过 Intuit 的 v3 REST API 建立到 QuickBooks Harmony 的连接)。
如果我遵循 Intuit 的例子,我会:
......它有效(对于“作品”的许多值(value)),但感觉非常脆弱:
为了使这一切更具弹性,我将对 intuit.ipp.anywhere.js 的引用和对 intuit.ipp.anywhere.setup() 的调用结合到 JQuery .ajax() 调用中:
$.ajax({
url: 'https://appcenter.intuit.com/Content/IA/intuit.ipp.anywhere.js',
type: 'GET',
dataType: 'script',
timeout: 4000,
success: function(response) {
if (typeof intuit !== 'undefined') {
intuit.ipp.anywhere.setup({
menuProxy: 'MYMENUPROXYURL.aspx',
grantUrl: 'MYGRANTURL.aspx'
});
}
},
error: function(x, t, m) {
// show some friendly error message about Intuit downtime
}
});
...这也有效(对于“作品”的更多值(value)):
有没有其他人采取不同的方法?
Intuit 重新上线了吗?
最佳答案
这与我们处理它的方式类似。我们已经将它封装在 jQuery.getScript 调用中,但显然 .fail 处理程序不适用于跨域脚本标签。我们的解决方案如下:
<script type="text/javascript>
var timeoutID;
timeoutID = window.setTimeout(function () {
$("#ippConnectToIntuit").replaceWith('<p class="error-message">There was a problem communicating with QuickBooks. The service may be down or in heavy use. Try again later.</p>');
}, 5000);
$.getScript("https://appcenter.intuit.com/Content/IA/intuit.ipp.anywhere.js")
.done(function () {
window.clearTimeout(timeoutID);
intuit.ipp.anywhere.setup({
menuProxy: '/path/to/our/menu/proxy',
grantUrl: '/path/to/our/grant/url'
});
});
</script>
<div id="ippConnectToIntuit"><ipp:connecttointuit></ipp:connecttointuit></div>
关于quickbooks - 调用 intuit.ipp.anywhere.setup() 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21888826/