有一些更新过程。
我需要从第三方调用服务,以便他们的数据库也会更新。
我的Ajax工作正常。 这是成功回调的内部代码片段。
.
$.ajax({
.
.
success : funtion(result) {
.
.
.
var disposalWindow = window.open('http://10.10.10.10:8070/exp_call?YMD='+ymd+'&HMS='+hms+'&CID='+cid+'&SEND_DATE='+senddate+'&ACODE='+inlineNumber+'&CALL_TYPE='+calltype, '');
disposalWindow.close();
},
.
.
.
到目前为止,这种方法运作良好。但是第三方的更新过程今天第一次失败了。
我要求提供商签出日志,看看该网页是否被调用,是否正确处理。
答案是“你当时没有打电话,日志告诉我。”
这会发生吗? 该项目完成至今已有3个月。
由于CORS,使用Ajax来调用页面是不可接受的。
但我认为使用window.open会没问题,看起来似乎是个问题。 在这种情况下,我该如何处理它?</ p>
为此目的使用window.open是不合适的方式吗?
答案 0 :(得分:-1)
我已经测试了很多,以找出通过window.open进行url-call随机工作的确切原因。
看起来网络状况会影响结果。
当window.open正在进行时,我挂掉了LAN电缆,并重现了同样的错误。
否则它可以正常工作。
更新。
这是我的代码,以UmurKontacı的评论为灵感来解决这个问题。
$.ajax({
.
.
success : funtion(result) {
.
.
.
$("<iframe id='disposalIframe' src='http://10.10.10.10:8070/exp_callback?YMD=20141110&HMS=114113&CID=0517277176+&SEND_DATE=20141110115023&ACODE=1161&CALL_TYPE=4' width='0' height='0'></iframe>").appendTo(document.body);
$('#disposalIframe').load(function(e) {
$('#disposalIframe').remove();
});
//var disposalWindow = window.open('http://10.10.10.10:8070/exp_call?YMD='+ymd+'&HMS='+hms+'&CID='+cid+'&SEND_DATE='+senddate+'&ACODE='+inlineNumber+'&CALL_TYPE='+calltype, '');
//disposalWindow.close();
},
.
.
.
我看到它一直等到网络再次可用时,我挂断了电缆。
但是,如果网络断开连接,则无法保证服务的成功调用。
但它使它无延迟。我测试了它。