如何在javascript中捕获异步调用错误?
我正在我的应用程序中集成accept.js 这不是一个特别的整合问题。这是我试图解决的JavaScript问题 在本教程之后,单击表单提交时会调用一个函数。此函数负责打包信用卡信息并将其异步发送到authorize.net服务器如何在javascript中捕获异步调用错误?,javascript,grails,authorize.net,accept.js,Javascript,Grails,Authorize.net,Accept.js,我正在我的应用程序中集成accept.js 这不是一个特别的整合问题。这是我试图解决的JavaScript问题 在本教程之后,单击表单提交时会调用一个函数。此函数负责打包信用卡信息并将其异步发送到authorize.net服务器 <script type="text/javascript"> function sendPaymentDataToAnet() { var authData = {}; authData.clientKey = "YOUR PUB
<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>
函数sendPaymentDataToAnet(){
var authData={};
authData.clientKey=“您的公共客户端密钥”;
authData.apiLoginID=“您的API登录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;
接受、发送数据(secureData、responseHandler);
}
问题是Accept.dispatchData()似乎是一个异步调用。如果在单击submit之前断开网络连接,则Accept.dispatchData将无法连接到外部服务
它将抛出以下错误
我的目标是抓住这个错误。我已尝试在try-catch块中包装Accept.dispatchData,但它似乎没有捕获抛出的错误。似乎错误就在它的某个地方。如何检测INTERNET断开连接错误?谢谢 可用于检测窗口
错误
可用于检测互联网连接
//窗口:打开时出错
window.onerror=(错误)=>console.log('navigator.onLine:',navigator.onLine)
//扳机。
const trigger=error
这是网络连接问题,如果您的网络关闭,则每个javascript/jquery插件甚至Google/Facebook站点都会抛出此异常。但是您可以在调用api之前检查您的网络,如下所示
if(navigator.onLine){
//do your stuff
}else{
alert("Please, check your network connection")
}
使用.catch()
我试过了,但失败了。它表示无法读取未定义的“then”属性。Accept.dispatchData()似乎返回undefined。这将引发“ReferenceError:未定义错误”
Accept.dispatchData()
.then(() => {})
.catch( error => console.log(error))