2012-12-13 46 views
4

示例代码片段dojo.io.iframe.send不会起在道场在发送第二次请求1.8

this._deferred = dojo.io.iframe.send({ 
     url: "/Some/Servie", 
     method: "post", 
     handleAs: 'html', 
     content: {}, 
     load: function(response, ioArgs){ 
      //DO successfull callback 
     }, 
     error: function(response, ioArgs){ 
      // DO Failer callback 
     } 
    }); 

步骤

  1. 点击提交按钮发送一个请求,并成功得到了响应
  2. 再次点击提交按钮......请求从不发送...

感谢所有帮助

+0

从它的声音,也有1.7和1.8的一些问题与dojo.io.iframe:HTTP:// trac.dojotoolkit.org/ticket/15740 – Frode

+0

这个问题已经解决,我已经尝试了所有下面的建议,但仍然存在我的问题。我正在使用dojo1.7。 –

回答

1

dojo.io.frame.send只会一次发送一个请求,因此,如果认为第一个请求仍在处理(无论它实际上是与否),也不会在第二次调用工作。诀窍是调用返回的结果推迟cancel()如果存在的话,像这样:

if (this._deferred) { 
    this._deferred.cancel(); 
} 
this._deferred = dojo.io.iframe.send({ 
.... 

,将取消第一个请求,并允许第二请求,以便正确地发送。

0

对于dojo 1.8,dojo.io.iframe已弃用。代替使用dojo.request.iframe

而且从@解对不起-IM-A-N00B仍然有效:

iframe._currentDfd = null; 

iframe.get(url, { 
    data: sendData, 
}); 
相关问题