window.open有时无法打开弹出窗口吗?

时间:2014-11-10 07:07:16

标签: javascript ajax

有一些更新过程。

我需要从第三方调用服务,以便他们的数据库也会更新。

我的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是不合适的方式吗?

1 个答案:

答案 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();
     },
.
.
.

我看到它一直等到网络再次可用时,我挂断了电缆。

但是,如果网络断开连接,则无法保证服务的成功调用。

但它使它无延迟。我测试了它。