Javascript 重复的$.ajax请求不会触发回调

Javascript 重复的$.ajax请求不会触发回调,javascript,jquery,ajax,Javascript,Jquery,Ajax,如果我在第一个请求的回调中发出完全相同的ajax请求,则第二个请求的回调不会触发 function doCall(){ console.log('1'); $.ajax( 'InfoRequest.cgi?reqType=rxChanNames&deviceName=Ultimo-0700b9' ) .always(function(d){ console.log('success1'); $.ajax( 'InfoReques

如果我在第一个请求的回调中发出完全相同的ajax请求,则第二个请求的回调不会触发

function doCall(){  
console.log('1');
$.ajax(
    'InfoRequest.cgi?reqType=rxChanNames&deviceName=Ultimo-0700b9'
)
.always(function(d){
    console.log('success1');        
    $.ajax(
        'InfoRequest.cgi?reqType=rxChanNames&deviceName=Ultimo-0700b9'
    )
    .always(function(d2){
        console.log('success2');                        
    });             
});
}
第二个调用被发出,服务器响应200,但从未打印“success2”。 请求的响应是JSON:

{"data":[],"status":"wserrortimeout"}
如果我将第二个请求更改为

'InfoRequest.cgi?reqType=rxChanNames&deviceName=Ultimo-0700b8'
然后它启动回调

在有人问我为什么要这样做之前,我在这里概述的是一个非常简化的版本,我实际上正在做的事情仍然证明了这个问题。应用程序在嵌入式硬件上,有时会出现错误,在这种情况下,需要重试请求


提前感谢您的建议。

您的javascript没有任何问题。。如果您要将请求转发到其他地方或其他地方,您可能需要查看CGI代码,因为您没有发送回响应。

javascript中没有任何问题。。如果您要将请求转发到其他地方或其他地方,您可能需要查看CGI代码,因为您没有将响应发送回。

更改参数会使呼叫正常工作,这让我相信这是缓存问题


在ajax参数中使用
cache:false
,以防止缓存。

更改参数使调用工作的事实使我相信这是缓存问题


在ajax参数中使用
cache:false
,以防止缓存。

为什么不检查错误,然后再次发出请求?这就是我在实际应用程序中所做的。同样的事情也会发生。如果中间有不同的请求,则一切正常,但如果连续发出相同的请求,则不会为第二个请求触发回调。您可以查看浏览器开发工具中的“网络”选项卡。第二个请求是否真的完成了,是否有响应?更改参数使调用工作的事实使我相信这是缓存问题。。尝试在ajax调用中使用
cache:false
,该调用会附加一个带有时间戳的参数,以查看是否有效。@JasonP添加
cache:false
有效!这是个奇怪的问题,你不觉得吗?请求是真正发出的,没有说“来自缓存”或任何东西,但是回调不会触发。有趣的是,它在IE中工作正常。为什么不检查错误,然后再次发出请求呢?这就是我在实际应用中所做的。同样的事情也会发生。如果中间有不同的请求,则一切正常,但如果连续发出相同的请求,则不会为第二个请求触发回调。您可以查看浏览器开发工具中的“网络”选项卡。第二个请求是否真的完成了,是否有响应?更改参数使调用工作的事实使我相信这是缓存问题。。尝试在ajax调用中使用
cache:false
,该调用会附加一个带有时间戳的参数,以查看是否有效。@JasonP添加
cache:false
有效!这是个奇怪的问题,你不觉得吗?请求是真正发出的,没有说“来自缓存”或任何东西,但是回调不会触发。有趣的是,它在IE中工作正常。