我在我的应用中集成了accept.js.
https://developer.authorize.net/api/reference/features/acceptjs.html
这不是一个特别的整合问题。这是我试图解决的JavaScript问题。
在学习本教程后,单击表单提交时会调用一个函数。此函数负责打包信用卡信息并将其异步发送到authorize.net服务器。
<script type="text/javascript">
function sendPaymentDataToAnet() {
var authData = {};
authData.clientKey = "YOUR PUBLIC CLIENT KEY";
authData.apiLoginID = "YOUR API LOGIN ID";
var cardData = {};
cardData.cardNumber = document.getElementById("cardNumber").value;
cardData.month = document.getElementById("expMonth").value;
cardData.year = document.getElementById("expYear").value;
cardData.cardCode = document.getElementById("cardCode").value;
var secureData = {};
secureData.authData = authData;
secureData.cardData = cardData;
Accept.dispatchData(secureData, responseHandler);
}
</script>
问题是Accept.dispatchData()似乎是异步调用。如果我在点击提交之前断开网络,那么Accept.dispatchData将无法连接到外部服务。
会抛出以下错误
我的目标是抓住这个错误。我尝试在try catch块中包装Accept.dispatchData但它似乎没有捕获抛出的错误。似乎错误被捕获在其中的某个地方。如何检测ERR_INTERNET_DISCONNECTED错误?谢谢!
答案 0 :(得分:1)
window.onerror
来检测window
errors
。
navigator.onLine
可用于检测internet connection
。
// Window: On Error
window.onerror = (error) => console.log('navigator.onLine:', navigator.onLine)
// Trigger.
const trigger = error
答案 1 :(得分:1)
这是网络连接问题,如果您的网络出现故障,那么每个javascript / jquery插件都会抛出此异常,即使是Google / Facebook网站也是如此。但您可以在调用api之前检查您的网络,如下所示。
word 0
word 9
word 11
答案 2 :(得分:0)
使用.catch()
Accept.dispatchData()
.then(() => {})
.catch( error => console.log(error))