示例代码段
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
}
});
步骤
感谢任何帮助
答案 0 :(得分:2)
我不能谈论1.8,但我使用的是dojo 1.6并且遇到了一个非常类似的问题,我用以下方法解决了这个问题:
dojo.io.iframe._currentDfd = null; //insert this line
dojo.io.iframe.send
({...
*已在Chrome版本25.0.1364.152 m
中验证来源:http://mail.dojotoolkit.org/pipermail/dojo-interest/2012-May/066109.html
答案 1 :(得分:1)
dojo.io.frame.send
一次只发送一个请求,因此如果它认为第一个请求仍在处理(无论它是否实际存在),它将无法在第二个调用上运行。诀窍是在返回的延迟结果上调用cancel()
(如果存在),如下所示:
if (this._deferred) {
this._deferred.cancel();
}
this._deferred = dojo.io.iframe.send({
....
将取消第一个请求并允许第二个请求正确发送。
答案 2 :(得分:0)
对于dojo 1.8,不推荐使用dojo.io.iframe
。而是使用dojo.request.iframe
。
@ Sorry-Im-a-N00b的解决方案仍有效:
iframe._currentDfd = null;
iframe.get(url, {
data: sendData,
});