我使用Topaz Signature pad& amp;实现他们的新AJAX库。如果未安装/运行驱动程序/服务页面,我想在页面上显示警告。为此,该脚本向域发出get请求,该域通过hosts文件重定向到localhost。
如果服务正在运行,我会获得签名板的状态。一切都好。但是,如果服务未安装或未运行,我只是得到NS_ERROR_FAILURE并且脚本停止,即使我在try {code} catch(错误){errorcode}
中也是如此try {
console.log('connect: ' + TabletConnectQuery());
}
catch(err){console.log('Caught ' + err);}
我的控制台只显示:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://tablet.sigwebtablet.com:47290/SigWeb/TabletState. (Reason: CORS request failed).
Line 0
NS_ERROR_FAILURE:
https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js line 2 > eval
Line 151
这在页面转换期间发生时特别麻烦。停止动画死。
答案 0 :(得分:0)
我最终通过修改提供的SigWebTablet.js库topaz来实现它。
更改
function SigWebGetProperty(prop) {
var xhr = SigWebcreateXHR();
if (xhr) {
xhr.open("GET", baseUri + prop, false );
xhr.send(null);
if (xhr.readyState == 4 && xhr.status == 200) {
return xhr.responseText;
}
}
return "";
}
要:
function SigWebGetProperty(prop) {
var xhr = SigWebcreateXHR();
if (xhr) {
xhr.open("GET", baseUri + prop, false );
try{
xhr.send(null);
}
catch(err){
return "";
}
if (xhr.readyState == 4 && xhr.status == 200) {
return xhr.responseText;
}
}
return "";
}