有一个更新的过程。
我需要打电话给第三方的服务,这样他们的数据库也会被更新。
我的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();
},
.
.
.到目前为止,这是非常有效的。但是,第三方的更新过程今天首次失败。
我要求提供程序检查日志,看看页面是否被调用,它是否处理正确。
答案是“你当时什么都没打,”洛格告诉我。
会发生这种事吗?这个项目完成已经三个月了。
使用Ajax调用页面是不可接受的,因为CORS。
但我认为使用window.open是没有问题的,这似乎是个问题。在这种情况下,我该怎么处理呢?
为此目的使用window.open是否是不适当的方式?
发布于 2014-11-11 00:25:32
我已经做了很多测试来找出通过window.open随机调用url的确切原因。
网络状况似乎会影响结果。
当window.open启动时,我连接了局域网电缆,并复制了相同的错误。
否则效果很好。
最新情况。
这是我的代码来解决这个问题,灵感来自Umurı的评论。
$.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();
},
.
.
.我看到它等待,直到网络再次可用时,我连接上了电缆。
然而,在网络断开的情况下,它并不能保证服务的成功调用。
但它使它没有延迟。我测试过了。
https://stackoverflow.com/questions/26838472
复制相似问题