某些内容有一个更新过程。
我需要调用第三方的服务,以便他们的数据库也会更新。
我的 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 调用页面是 Not Acceptable 。
但是我以为使用window.open不会有问题,结果看起来有问题。 这种情况我该如何应对?
为此目的使用 window.open 是否不合适?
最佳答案
我已经进行了大量测试,以找出通过 window.open 进行 url 调用的随机工作的确切原因。
看来网络状况影响了结果。
当 window.open 正在进行时,我断开了 LAN 电缆,并重现了相同的错误。
否则它工作正常。
<小时/>已更新。
这是我解决这个问题的代码,受到 Umur Kontacı 评论的启发。
$.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();
},
.
.
.
当我断开并连接电缆时,我发现它一直在等待,直到网络再次可用。
但在网络断开的情况下,不保证服务调用成功。
但它使其无延迟。我测试过。
关于javascript - window.open 有时无法打开弹出窗口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26838472/